Overview of Xamarin

What is Xamarin?

At its extreme basic, Xamarin is a platform which can be used to build and test native cross-platform mobile apps using C# & Visual Studio. It also has its own IDE named “Xamarin Studio” which can be used as an alternative to Visual Studio. Also, it provides seamless integration with Visual Studio, compatibility with most emulators in market (AVD, Xamarin Android Player, Genymotion, etc.) and also provides abundant set of components which one can use in their project depending on their requirement.

Features

Native UI

When we start with development on cross platform apps, there are two approaches which one could choose, first is using Xamarin Forms & the other is using Xamarin Platforms. Xamarin Forms provide a common UI classes & tags which we be used common between all platforms (Win Phone, iOS & android). Whereas, the other approach involves creation of Platform specific approaches which can be helpful if we want to make use of Platform Specific classes. For instance, if one would want to use iBeacon class which is exclusively available only on iOS, we can do it in Xamarin. IOS project by making use of the iBeacon class. There can be similar requirement in either of the 3 platforms, which can be done using the same method.

Native Performance

For iOS, when the program is compiled, it sends the request to a Mac and uses its own compiler for the code written by you and converts it into the package which can then be deployed on an emulator. For Android, when the program is compiled, it sends a request to “mono,” a framework built by Xamarin as an alternative to Dalvik to boost overall application performance.

Moreover, unlike other mobile development frameworks which run the app within web-view (browser), Xamarin programs run directly on the device, which enables the application to run seamlessly on the mobile device, with minimal performance overhead.

Same day support

This is the one of the most beautiful features of Xamarin. They have successfully proven in history that Xamarin provides same day support to all new releases on any mobile platforms. This will continue even in the future.

Xamarin Testcloud

With more than 30 unique devices in iOS & 24k devices in Android, it is practically impossible to test your app in each device on UI, performance & other factors. To make it possible, Xamarin provides a feature called “Test Cloud”, in which your app is tested for all such pre-defined factors using a robotic hand. Post which a detailed report is sent to you with screenshot and exact details of error, if any.

Xamarin Insights

Once an app is built and published in the store, it is essential for a publisher to know whether users are using the app, analytics of the users, and complete details of errors/crashes when it occurs on a user device. To make this happen automatically, Xamarin facilitates us with a feature named “insights” which sends you mail alerts on crashes and also provides in-depth report on the usage of the app in real sense.

Pricing

Detailed pricing structure can be found on the Xamarin site, however, it is available in three main categories. Namely, Starter – Indi - Business. Business and Indi are chargeable on monthly/yearly basis respectively and starter edition is Free for all. The only catch here is that it limits the app size to 128KB for starter.

Conclusion

In a nutshell, Xamarin is exceptionally helpful and easy framework for developers with dot net background and companies who are not willing to hire more resources with separate skill sets for separate mobile frameworks. I am sure that there are many more features in Xamarin apart from the ones listed above.

The overall costs involved in licensing are little difficult for developers to buy it on an individual level. I only hope that they come with free license for developers or increase the app size limit in Starter editions soon to encourage a much larger portion of community.