Xamarin is certainly a powerful and comprehensive platform especially considering the better tooling and debugging experiences. However, it needs a fair amount of learning and understanding, particularly for new developers. In order to use Xamarin, you need to know the iOS and Android platforms and app models in addition to Xamarin tool chain and C#.
On the other hand, for the development of simplest of apps, where your team needs minimal knowledge of the mobile environments and where the success rate is less dependent on performance or responsiveness, Apache Cordova makes a perfect choice. Several businesses use Cordova because it is comparatively cheaper in terms of initial investment cost.
Cordova vs. Xamarin
Nevertheless, it is a fairly common to find businesses which tried Apache Cordova first and then scraping it for a Xamarin solution. Usually, Hybrid applications don't match the UX look and feel of a true native application particularly right after a new OS launch. On the other hand, Native apps automatically adopt the updated UX.
Cordova uses a common config.XML file that transmits information to a Web page widget. With a help of WebView (a special browser that accesses Web-level APIs), developers can mix native applications. In several cases, developers can build apps entirely from WebView APIs. Apps built by this method can use WebView components within the native applications itself. Cordova creates some challenges for developers when compared to Xamarin. List of challenges,
- Higher chances of bugs in complex UI
- Limited API functionality
- Difficulties of making apps appear native
When compared to Cordova, Xamarin offers vast number of tools for custom app development, allows testing of apps on more than 2000 devices. Cordova is apt for new app developers and companies with limited budgets.
Neither is a perfect nor wrong choice. Both the Cordova and Xamarin have its own share of features and support. Picking one over the other depends on your application requirements, budget, time-to-market, and many other variables.