Udostępnij za pośrednictwem


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 Article

  • Anonymous
    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 thoughts

  • Anonymous
    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