In Visual Studio 2015, you have two options to build mobile apps. The first one is to use the power of the modern web (HTML5+CSS+JS) and the second one is to use the power of C# and object oriented language. This article will discuss those two implementation namely Apache Cordova for building mobile app using the power of web, and Xamarin to develop with the C# language.
Some of you might know about Xamarin. Xamarin is an extension on Visual Studio that can help you build native mobile application using C#. Whether your project is IOS, Android, or of course Windows Phone, Xamarin will help you to build awesome application. However, there are several challenges on Xamarin which are
- Is separated extension. Unfortunately, by using Xamarin you should paid yearly to develop and deploy the app starting with 25$ / month – 158$ / month. Although, Xamarin provides a free /low fee subscription but it is limited to student, and academic
- The code reusability between 60%-100%. it means you can’t really how that write once run anywhere. You should tweak it at least for the user interface by converting to XamarinForm
- It depends on mono runtime. Mono runtime is good but has limitation compared with original .NET Framework.
Despite of the limitation, Xamarin has potential solution if you need.
- High performance application that can access native API
- Strong typed and object oriented development to support you flexible architecture
- Drag and Drop user interface development. If you are Windows Developer, no need to learn JS or HTML. You can build using drag and drop style for IOS or Android.
Cordova is a framework that help you build an application with HTML, JS, and CSS. This is a better solution rather than Xamarin if your:
- No additional cost like Xamarin, it bundles with Visual Studio 2015 even for Community Edition
Although, it has several challenges such as:
- Limited native API. as the time, this blog is written. The limited native API has only access to limited functionality of the OS.
- Interpreted result. The Cordova original results is not native, developer should do extra steps to make the development just like native. And it’s a long story for some real/complex project
- Open framework makes some newbie developer confuse. For example, you can create same application on Cordova by using AngularJS, WinJS, and Backbone. Which one is better? which one is faster? its depends on your experience by using that framework.
So which one? it depends on your situation. This is not choice you can test both when necessary and decide it by looking your team performance.