There are two flows of thoughts when it comes to the mobile application development. The first group supports the idea that native development is the king as it provides best user experience, fast performance and full access to the platform APIs. The second group has a fair question, though: “And what about development time and cost?” They get increased since the one has to create specific code for all the Android, iOS and Windows. It’s longer and more expensive than writing shareable code that can be used for all the platforms. If you hesitate if it is possible, then I’m going to introduce you to Xamarin – the very platform that lets developers create code that can be shared among all three operating systems. Still don’t believe me? Then let’s ask for more details one of our lead Xamarin developers – Nickolas Shpotenko.
What was your path as a developer towards Xamarin?
In the very beginning, I started my path as a developer with the C# studies. Then I had quite a few thoughts about perspectives. I gradually studied C# and front end. Soon I realized that I wasn’t interested much in Web development. I was more about new technologies. I came across Xamarin and that was what I looked for. At first, it was not so easy to transform native code into cross platform. But now, it’s become more sophisticated so that you can get a cross-platform app of a high quality.
What is the main reason to choose Xamarin for a project?
The code sharing aspect is perhaps the foundation of Xamarin benefits. I can freely use 60% of non-interface code on both Android and iOS. Using Xamarin forms can bring this number to even more – 90%. And here I mean not only authentic qualities of Java or Objective-C, but also the frameworks you work with on Android and iOS.
I see the reason for a developer to love Xamarin. But why is it so good for an average business? Let’s say for a café owner who wants to create an app to make an interactive menu card’
It’s simple. As a business owner, you can save money and time on the development process. You can hire one developer that will work on your menu-app instead of two or even three (iOS, Android, Windows).
Plus, with Xamarin, you will get a native app. There are no drawbacks speaking about speed and UI, as you can use native APIs 1:1. You can get anything Xamarin from what is available on Android or iOS. For instance, as soon as Apple launches new release you already have all api in Xamarin. So, you can use new Apple features almost immediately.
Then could you explain in simple terms, how Xamarin manages to work for all the platforms? Where is magic?
There is no magic, just a few tricks.
Xamarin has a great feature –, Ahead of Time Compiling on iOS. With its help, everything I write in C# is compiled into native iOS kit, and only then the code is deployed to a device. And here we go: what is executed in native Objective-C application is almost the same as what is executed by Xamarin application. For Android, they use Just in Time compilation as for any other Android app. Xamarin Android supports AOT too.
Got it. And that’s all that Xamarin has to offer?
Xamarin Insights is another great benefit. It is a native way to gather real-time and after-crash statistics from an app. You can say that there have already been loads of such services. But, surprise-surprise, they do not have C# libraries and I can’t just add it to my app and start using it. I have to spend time on binding it to my platform.
So, what’s so good about this Insights?
You can see real-time user sessions, you can track down which errors affect what users, see each exception stats, set up triggers for particular Insights events and much more. With its help, you can substantially improve user experience with your app.
Insights interface is user-friendly, so you get to know it pretty fast.
What are your personal preferences about Xamarin?
Xamarin saves my time: I’ve already learnt process lifecycle, SDK, UI tricks of one language, C#, and I don’t have to learn all of this for another one. Xamarin provides complete implementation for C#.
It is great that Xamarin does not try to unify things that are not comparable. I mean that as a result, you get UI and SDK that are specific to iOS and UI and SDK that are specific to Android. In other words, you get an iOS app that feels like iOS and Android app that feels like Android. Xamarin saves uniqueness of each platform.
Does Xamarin changes the app development process?
Indeed. Xamarin accelerates your time-to-market. It allows us to write the application logic code once and then share it on both iOS and Android. No one can argue that it’s faster and easier than implementing logic in Java and in Objective-C separately. Put simply, if we used native platform environment, we would have to write more code. If we wrote more code, it would take more time. I have to say, though: Xamarin does save much time, but you shouldn’t expect that it will halve the app-creation process.
Add to this, Xamarin improves the testing stage. Less code means less errors. It is one way Xamarin reduces bugs. Another way is its providing more test coverage. I mean that instead of creating two tests for two platforms, that are rather the same, we can dedicate more time and more efforts to one complete test that can be used for the both platforms. Here is an example to explain what I mean. There are two ways to test when working on an app for separate platforms: one specialist has to split time for the both platforms or there should be two specialists – for each of the platforms. The both options are not perfect, the former – lack of full concentration, the later – lack of collaboration. Xamarin lets the whole team work on the whole project.
To sum up, if you want your app to be created with less cost and time-to-market, you should consider Xamarin as a great option of cross-platform development: up to 90% of shareable code, native UI and UX, Xamarin Insights and testing features and “thank you” from your developer. Glorium Technologies will gladly provide you with all the information and help with your mobile app creation process. See details at https://gloriumtech.com/xamarin-development