Another interesting statistic is that 89% of users spent their time on media on mobile devices and according to Gartner.com: “By 2017, mobile apps will be downloaded more than 268 billion times, generating revenue of more than $77 billion and making apps one of the most popular computing tools for users across the globe.”
This then shows that mobile development is something that will add to the exposure of a company or even a small business since users prefer to use purpose build applications for their everyday needs. Something that may come up as a problem is how fragmented the mobile environment is, tablets, phones, wearables and in addition to that we have three main platforms that all those devices run on like iOS, Android, Windows Phone and even MacOSX, thus creating the issue of cost efficient development solutions both in terms of money and time. This is where C# and Xamarin come into play.
Xamarin started off in 2011 with a goal to allow developers to develop applications for iOS, Android and Windows Phone using Microsoft’s C# language. The framework is based on the open source project called Mono which was an implementation of the .NET Framework by Microsoft. Apps built using Xamarin can be deployed on any os without the need to rewrite the entire codebase. Xamarin uses XAML (Extensible Application Markup Language) an XML based language to create the user interface. This allows the design and the code behind it to be used on all mobile operating systems without the need for custom controls, each app feels and looks native. The reasons to use Xamarin can be condensed to five main points.
Firstly all applications created are native, meaning that the apps use native user interface for each operating system, the Xamarin IDE gives developers access to device specific features and the applications perform as native applications. This easy of code sharing between platforms makes the cycle development shorter and more efficient. Another point for using the platform is the other half of the application, its logic. While mentioned earlier that the design is native and it can be reused on each platform this is the case for the app logic as well. Input validation, database access, web services and enterprise backend integration would all be coded on C# thus giving the opportunity for developers to share up to almost 80% of the same code in different operating systems. Combining the two previous points it becomes apparent that time is saved by not recoding the app for each platform and the room for bugs and errors diminishing since we are developing a single app that can deployed on multiple types of devices and operating systems.
Additionally Xamarin is built upon an open source project as mentioned earlier thus showing that the people behind it believe in collaboration and sharing of ideas and tools. The Xamarin Component Store, which is integrated in Xamarin Studio, provides free and paid components that range from UI-controls to cross platform libraries and all that with a minimum amount of coding required. Finally C# comes with the support of Microsoft and .NET framework that makes async programming very simple an easy thus being the perfect language for cross platform development.
In conclusion C# combined with Xamarin are the perfect tools to develop a solution that will be available to any platform at the same time saving time, having a simpler development cycle and also making continuous support for the app a breeze.