Mobile application development has become an apple of discord dividing IT fans into two camps. For ones, native applications are the only option when it comes to user-friendly performance, speed, compatibility with APIs platforms. Others put a stake in cost-effectiveness and time developments. And the tendency is that the second group is prevailing, as such a factor creating a code, which can be run on different platforms, will save both money and efforts. Just imagine a code that is operable on Android, iOS, and Windows. Now it is no longer a fantasy. Welcome for your attention Xamarin – a revolutionary platform that can be shared among each of above-mentioned platforms. Mykola Shpotenko, our Lead Developer, is always ready to provide you with a detailed description of this innovation or you can find further instructions on the site of Glorium Technologies, the company he works for: http://gloriumtech.com/xamarin-development.
How did you decide to develop Xamarin?
I decided to start my developer career path with C# and front end. Yet, I still had few ideas about what to do further. What I knew for sure is that Web development was of little interest for me. I was more interested in new technologies and developments. Soon, I came across Xamarin and it turned out to be the one. With its development, it’s become easier to transform native code into cross-platform comparing to what we had in the very beginning.
What made you decide to use Xamarin for your project?
Xamarine has a compatible code. That was the primary reason for my choice. This particularity allows me to use 60% of code without interface on Android and iOS, including also frameworks that are used when working with Android and iOS.
Let us now focus not on developers, but on average business, say, owners of small business. For example, a café owner would like to create an app that shows a menu card. Can they use Xamarin for this purpose?
They can for sure, to say even more, by using Xamarin, they will save their money. With Xamarin, you will need to hire one developer, who will create one native app, which will be suitable for Android, iOS or Windows. Considering the fact that you can use native API 1:1, you will find no problems with speed and UI. With the new updates from iOS or Android, you can get them easily on Xamarin.
If it so good, could you explain in simple terms, how Xamarin operates on different platforms?
There is such a feature as Ahead of Time Compiler, which means the ability to compile a program on the intermediate language. So, with its help, everything written in C# can be compiled into native iOS kit, after that the code is deployed to a device. As a result, everything executed in a native Objective-C application is almost the same as executed by Xamarin application. For Android, they use Just in Time compilation, Xamarin Android supports AOT as well.
I see. Is there anything more that can be offered by Xamarin?
There is such a feature, called Xamarin Insights. It reports on crashes in a real-time mode and builds statistics from your app. Comparing to other services, which offer the same feature, Xamarin Insights has C# libraries, that enables you just to add it to your app and do not waste your time on binding it to the platform you use.
So what are the benefits of Xamarin Insights?
Not only the user-friendly interface but also many other functions make these Insights outstanding. With its help, you track the workflow of your application. You can track down real-time user sessions, an error that may affect your app. Xamarin Insights will make exception stats, and offer you the function of setting up triggers for certain Insights events.
How do you personally benefit from Xamarin?
With Xamarin, I am able to save more time, as it accepts complete implementation of C#. That means once I have learned process lifecycle, SDK, UI of one language, I do not need to learn this trick for another language. What is more, Xamarin will never combine incomparable things. UI and SDK of iOS and Android will save their identity. To put it in other words, you will have the iOS app and Android app the way they are. They will stay unique.
Does Xamarin change the process of app development?
It does. Xamarine saves your time-to-market. Once the application logic code is written, it is shared both on iOS and Android. It is easier and faster rather than implementing logic in Java and Objective-C separately. If compare native platform environment, there we write more code, consequently, it requires more time. In the case of Xamarin, time is saved, but do not expect to see a great decrease.
Moreover, Xamarin requires less testing, as it has less code. Also, it provides more test coverage. That is instead of hiring two testers for two platforms, it is enough to complete one test that can be used for both platforms. How does it work? In average native app platform, there are two ways of testing it – one is having a tester who splits time for both platforms, or another way is having two experts for each platform. In the first option, a tester will not be fully concentrated; the second one will lack cooperation. In case of testing Xamarin app, the whole team will work on the project.
All in all, in order to create a cost-effective and less time-consuming app, it is worth using Xamarin. It will grant you with up to 90% of the compatible code, native UI and UX and Xamarin Insights will always check whether everything is under control.