The development for mobile devices is not engaged in today just lazy, well, or someone who has not heard about it, or does not need this. However, one can not deny the fact that mobile devices every year to absorb the PC market, translating the need to have a workstation or laptop to access the Internet. Over the last year the traffic of mobile devices increased by more than 20%, indicating that smartphones are not a luxury but a subject of daily necessities.
Today Xamarin is actively developing the platform, with a sufficiently large prevailing community. The choice of this platform was adopted after in-depth analysis of application development capabilities using native tools (Java, Objective C \ Swift, Windows Phone Toolkit). However, the elegance of cross-platform solutions still prevailed. Especially because Xamarin long enough in the market and in addition to support iOS, Android, WindowsPhone recently started to support WinRT (which in fact was the last point in the decision).
I will try to identify the main “pros” and “against”, which stood on the scales when choosing a solution for application development.
Let’s start with the “pro” list:
- Cross-platform solution that gives us the existence of a common code base in the project, the ability to write code in the same language, the creation of common-layer
- Using actively developing tools, he unwittingly develops. Xamarin begins to support Apple Watch \ Android Wear and much more; confident in the future will also support. By creating an application once, you can not help it fill Store at any later time, where before not even planned
Actively developing community and code base. Forum on the main site platform actively attend as creators Xamarin and many of their MVP. Answers are given within 3 hours, which I personally think is quite fast.
- The presence of parallel developing frameworks such Xlabs \ Plugins \ Own Store other bonuses for developers. Presence TestCloud (albeit overpriced), University and Insights. (Personally, he was not engaged in more recent, for as long as hands do not reach and the price bites).
- Actually the platform itself. Very good code coverage of many services of the controller required to develop business applications.
- The ability to continue to lead the development of any .Net (C #), with all its async \ await, LINQ to favorite studios. And me, as a WPF developer much became clear without additional searching in Google. Xamarin developers competently built architecture.
In the “against” gathered:
Price. If we discard the Indie developers, for ordinary companies for 10-15 people, the price is a serious disadvantage. It would be possible to pay for a Business license, but University and Test Cloud will not be available and require no small cost extra. Price – The main disadvantage as for me.
Performance problems. Yes, they are pronounced on the Android platform, almost invisible under WinRT. However, I want to say that even the Release 4.3, compared to 4.2 is much better in terms of memory leaks and constantly departing OutOfMemory and Unhandled exceptions. And the iron continues to insure. Today, many of power smartphones are not inferior to our first laptops.
Actually, if you are faced with the purpose – then Xamarin in my opinion is a good solution that, when a competent design will provide excellent results to develop a business application for different platforms.