Picking between Xamarin and Apache Cordova
Now that Visual Studio has great integration between both Xamarin and Apache Cordova, I often get
asked how to choose between the two.
Xamarin is generally better when you:
- Need to do apps with less shared UI, more shared logic. Xamarin.Forms changes this, but it’s still very new at the moment
- Have .Net developers
- Need a high performing, native looking app
Cordova with Visual Studio is generally better when you:
- Want to share more UI between platforms, with fewer native looking elements.
- Share UI assets with a mobile websit
- Have HTML \ JS developers
- Are OK with a somewhat less smooth UI on older Android and iOS devices, or don’t plan on supporting older Android (pre 4.2)
The Xamarin experience for developers is generally better than the
Cordova experience, having been around a bit longer. Cordova can be really
difficult if you don’t use the new Visual Studio integration.
Xamarin has a license cost, Cordova does not. However, the difference in
the license cost can quickly be eaten up by having to do more work to account
for different Android versions on a Cordova app.
Xamarin has a much greater need for access to a Mac while developing iOS
apps than Cordova. Cordova apps can be built against an iOS
emulator running in Chrome. You absolutely still have to do testing against
physical devices.
My preference is usually for Xamarin, but there are situations that are
better suited to Cordova-based apps. I wouldn’t do Cordova apps without the new
Visual Studio support.
I’m finding more and more services companies using Xamarin, and more
startups using Cordova. Services companies can quickly recover the Xamarin
license cost through improved productivity, whilst startups have a need to keep
costs down, whilst being real responsive to changes in their product on
multiple platforms, including the web.
Lots of agencies still do only native app development. I view this as
half ignorance and half rort to make more money out of customers who don’t know
better. Apart from the higher initial cost, the real bite comes in the total
cost of ownership over the lifetime of the app, since each fix and change needs
to be multiplied by the number of platforms. The product they deliver rarely
justifies the cost, and they often reuse codebases they’ve already written but
still charge customers for it. Native development has a place, but it’s
definitely not for a cross platform forms over data app.
Hope that helps next time you're faced with a decision.
Till next time,
Hannes Nel
Technical Evangelist, Microsoft New Zealand
Twitter: @hannesn
Comments
Anonymous
February 15, 2015
Great ArticleAnonymous
March 11, 2015
"Lots of agencies still do only native app development. I view this as half ignorance and half rort to make more money out of customers who don’t know better. " You do realise Microsoft has been advocating native app development for its own ecosystem only for the best part of the last 5 years (just like iOS and Google) and it's only recently that cross platform has been viable economically for agencies to pick up and bet on. Agencies are finding ways to do cross platform despite the ecosystems and their controlling interests;)Anonymous
April 01, 2015
How can one provide offline access without native apps?Anonymous
May 05, 2015
How can one provide offline access without native apps?Anonymous
June 07, 2015
@andy/degg The HTML and JavaScript in Cordova are just rendered on the device. You don't need a external server.Anonymous
August 04, 2015
If you need visual studio to code web related things, there are some flaws in your programming skills. Visual Studio isn't the center of the world.Anonymous
August 11, 2015
"If you need visual studio to code web related things, there are some flaws in your programming skills." This is partially true. Some people may prefer to use VS to code web app because honestly, it's one of the best IDE (if not the best) to use. For all my websites, I use PHP using NetBean IDE, but there's also a PHP Plugin for Visual Studio as well. I've tried many IDEs and VS is by far the best. =)Anonymous
December 08, 2015
It's worth mentioning that Xamarin license (from $999 per platform - basically you need to spend at least $2'000 on licensing per developer) is not affordable by most startups.Anonymous
December 17, 2015
This is really informative, thanks for sharing your thoughtsAnonymous
December 21, 2015
"It's worth mentioning that Xamarin license (from $999 per platform - basically you need to spend at least $2'000 on licensing per developer) is not affordable by most startups." Xamarin has special pricing alternatives both for indie developers and startups which makes your argument irrelevant.Anonymous
January 06, 2016
Great post! For anyone who would like more information: dibranmulder.blogspot.nl/.../xamarin-vs-cordova.html