Outsourcing Mobile Development - Xamarin vs Phonegap vs Native from a Freelancer Perspective

Crowdsourcing.. er, outsourcing mobile apps development? What portal to use? What technology to use?
There is no app for this: How to outsource mobile app development?

(Photo by NW / CC BY 2.0)

This last post in our Upwork vs Elance vs Freelancer.com series focuses on outsourcing mobile development projects. This experiment aims to answer two questions:

(1) On which outsourcing portal do you find the best mobile developers?

(2) And also: What is the recommended technical approach for cross-platform mobile development? Xamarin, Phonegap or creating a native application for each platform?
The Xamarin vs Phonegap vs Native question has already been  answered in many good developer blog posts (for example here), but just like the cited post, all of them focus on the technical merits of each approach. That is a valid. But assume your project, as many projects, can be implemented with all frameworks/approaches (like ours). Then it is time to look at the project from a different angle: For which technology do you find the most developers? [Hint: The answer will surprise you] The common wisdom is that there are more native iOS/Android developers than experienced Xamarin developers, and so it’s easier to hire people for native. But this turned out to be wrong.

As test project I created a specification to port an existing Windows desktop application to a cross-platform mobile app. The project was posted on the three major outsourcing portals.

The cross-platform mobile app specification

Here is the summary of the project specification:

Convert Windows Desktop application to Android and Windows Phone mobile app

I am looking to convert a small Windows Desktop application to a mobile app for Android and Windows phone (iPhone is planned for later). The application will connect to a server every X minutes and log the connection download speed and display it graphically. The full C# source code of the Windows app (Visual Studio 2013) is available. 

I see three options for this project:

1. Native Android and native Windows Phone app
2. Cross-platform Xamarin app 
3. Cross-platform Phonegap app

All options are ok for me => In your bid, please let me know which approach you suggest and why. Other ideas are also welcome. 
The specification is simple: Duplicate the functionality of the Windows Desktop app :-)
This means: The mobile apps have the same features as the Windows application but there is no need to clone the Windows desktop app user interface directly. Just the opposite: The user interface should be designed for mobile/touch use.

Deliverables:

1. Android app (Only support for Android 4.1 Jelly Bean and higher required)
2. Windows Phone app (Only support for latest Windows Phone version “Lumia Denim” required)
3. Well-documented source code, project(s) must compile without warnings. 
4. Installer packages, ready to submit to the app stores

Elance vs Freelancer.com vs ODesk in Numbers

Immediately after posting the project on all three outsourcing portals the first bids came in. Here is the result after seven days.

C# Outsourcing Elance Freelancer Upwork
Bids, total 15 17 11
Qualified Bids 8 8 7
Price Range $273-$700 $120-$2055 $200-$3333
Average Price $380 $515 $600

I received qualified bids on all three portals. As I want to be objective, my definition of a qualified bid  is a bid of someone who as completed at least one 4-5 star rated project. The justification for this criteria is simply that an already (at least) once successful freelancer knows what she is doing and is thus qualified in this sense.

Xamarin vs Phonegap vs Native in Numbers

But what is the right technology to outsource a mobile project? Lets look at the numbers. This table lists the approach recommend by the freelancers:

Mobile Dev. Elance Freelancer Upwork Total
Native 5 1 2 8
Phonegap 1 2 2 5
Xamarin 6 6 5 17

Xamarin won by a clear (and statistically valid) margin against Phonegap and Native. This is a very, very surprising result, and against the common wisdom that  there are more native iOS/Android developers available than experienced Xamarin developers, and so it’s easier to hire people for native.

Conclusion(s)

Outsourcing: Elance vs Upwork vs Freelancer

Elance, Upwork and Freelancer all work for outsourcing mobile development projects.Once again, the bids were highest on Upwork, and less on Elance and Freelancer. With four experiments (OpenCVC#ASP.NET and now mobile development) over one year showing the same price difference this conclusion is statistically valid. I did not expect such a clear result, as my assumption was that arbitrage between the portals would average out the project costs.

Technology: Xamarin vs Phonegap vs Native

So if all three approaches make sense technically, which one to pick? Well, if you plan on outsourcing the development  the clear choice seems to be Xamarin - just much more talent out there. There is one important caveat: Our experiment is biased as we are started out with a C# desktop app, and this gives Xamarin a head start. But we have a very basic application with not much business logic behind it at all. So recreating this logic in Javascript (Phonegap) or Java (Android) is not much extra work. I was confident that the native development approach would be the clear winner of this test. The key result here is: Given their restrictive licensing model (see next paragraph) the large number of Xamarin developers overseas is amazing. My guess is that many Windows developers use Xamarin as their entry point to mobile development.

Xamarin: Business use vs Hobbyist

But… and this is a huge but for everyone not using Xamarin at their day job. For hobbyist, open-source developers and everyone that simply likes experimenting with new technologies once in a while, the Xamarin pricing is plain ridiculous. As great the technology is, as short-sighted is the licensing model. The free Starter Edition sounds good and you are tempted to think “Ah, just like free Visual Studio Express Editions”. But in reality the Starter Edition is useless for anything but a “Hello World” app and actually, even this is wrong. With the Starter Edition you can not compile a Xamarin Forms based “Hello World” app.

xamarin pricing
TXamarin wins at developer support, but looses on the last stretch due to their pricing policy.

(Photo by NW / CC BY 2.0)

And while the Indie Edition at $29/month is reasonable priced for hobbyists, it is still very much crippled - especially no Visual Studio support. The next subscription level is the Business level – at $999/year per seat per platform (so $3000 per year for creating one cross-platform Microsoft/Android/iOS app). Maybe they have good reasons for this pricing policy, but I don’t see it.Why do they actively discourage future developers? I am not spending $3000 just to play with a tool for a few weeks, nor do I have the time or motivation to navigate through all the artificial complexities of using the Indie or trial editions.

Edit May 15, 2015: ODesk rebrands as Upwork, so we renamed it in the text.