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 (11)

  1. George Kanellopoulos says:

    Great Article

  2. Keith Patton says:

    "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;)

  3. Andy says:

    How can one provide offline access without native apps?

  4. ddeg says:

    How can one provide offline access without native apps?

  5. Johandroid says:

    @andy/degg  The HTML and JavaScript in Cordova are just rendered on the device. You don't need a external server.

  6. Visual Studio Love Letter says:

    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.

  7. Mikey says:

    "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. =)

  8. Ivan Gavryliuk says:

    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.

  9. furkans says:

    This is really informative, thanks for sharing your thoughts

  10. Marcus says:

    "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.

  11. Dibran Mulder says:

    Great post! For anyone who would like more information: dibranmulder.blogspot.nl/…/xamarin-vs-cordova.html

Skip to main content