When researching a little about platforms for developing mobile apps, I came across Xamarin and Cordova.
Both aim to develop a single code base for applications running on Android, iOS and Windows Phone.
As I'm not an expert in mobile development, the following questions came up:
- What are the main differences between these platforms?
- Is it possible to use native features that are unique to a certain operating system?
- Are the platforms compatible with each other?
Xamarim is for creating mobile native applications (Android, Windows Phone and iOS) using Microsoft's
Cordova (or as it used to be called: PhoneGap) is the same but using
Both work as a proxy when calling internal functions whatever the mobile device, they internally call the right method, whether they are running on Android, WPhone or iOS, where we programmers just call one method.
What are the main differences between these platforms?
Xamarin 's main goal is to bring .NET programmers to iOS, as the language is C#. They are known for, whenever Apple exposes new API's, in less than 24 hours they are available in Xamarim. With Xamarim, we can create any native application, and now as it supports Android and Windows Phone as well, we can have our own application libraries (BLL and DAL for example) and create only "Views" for the Web and with Xamarin, Android, iOS and WP, never leaving the C# language, and never needing to learn Java, Swift or Objective C.
Cordova more follows the "mobile app" principle as it is the continuation of PhoneGap, that we could make a web application and run it in a browser, and without Cordova, you cannot call phone commands, such as the Contacts List, the Photo Gallery because we are "locked" only to what the phone browser supports, for example the
mailto: links that open the Phone and Email application respectively.
Is it possible to use native features that are unique to a certain operating system?
Yes, they both have built-in tools that convert the calls into native calls, but Cordova only has a few since it just runs as a webpage. Xamarim has all the native calls of the top 3 mobile systems as it has the ability to create all kinds of applications and not just WebApps.
Are the platforms compatible with each other?
They are two different things, not knowing your resources as a programmer, I say in other words:
- with Xamarim, you can create a car from scratch
- with Cordova, you can just create the dashboard view