Which top platforms are easiest to develop for?

In the mobile software world, developers are considered vital to the health of platforms, of which they have several to choose from. Platform owners have to work very hard to make sure their SDKs and tools are easy to use. Too much friction, too little documentation or too steep a learning curve can drive developers away. Which platforms are the easiest to develop for? More importantly, does ease of development translate into popularity? Or is it just a hygiene factor?


A lesson from history

Mobile platforms have not always tried to make things easier for developers. Before the iPhone, Symbian dominated the smartphone market and had a policy of making developers jump through hoops to ensure both the resource efficiency of apps and the security of the platform. Nokia tried to add a developer friendly layer on top of the OS with Qt but it was too little too late to capture developer attention, even with an existing large installed base. So, a terrible developer experience can ruin a platform’s chances but does greater ease of development lead to success?

Interpret with caution

In our last developer economics survey we asked developers how easy it was to use a common set of APIs on their primary platform. Before diving into the data, there are some caveats:

  1. Comparison between platforms is slightly unfair because the API categories are broad and not all platforms will enable access to the same level of functionality
  2. Not all developers target multiple platforms, so some do not have a good basis for determining ease of use (although purely subjective ratings are still valid for comparison)
  3. The APIs that were included in the survey primarily focus on native functionality, so this comparison in somewhat unfair on HTML5
  4. The APIs do not include UI functionality and building the UI is a significant part of the work in most mobile apps.

Bearing those points in mind, below is what developers think of their platforms.

Easy != Popular

Our data shows that the challenger platforms, BlackBerry 10 and Windows Phone are the easiest to develop for, with BlackBerry 10 having a slight lead. In the middle are the leading platforms, iOS and Android, with iOS fractionally easier to develop for overall but with Android having several APIs where it leads.

In a distant last place we have HTML5, suggesting that it’s still very difficult to build apps that take advantage of uniquely mobile features with web technologies. In this regard it’s interesting that the recently appointed CTO of Mozilla, Andreas Gal has this to say:

“For Mozilla, anything that the Web can’t do, or anything that the Web is not faster and better at than native technologies, is a bug. We should file it in our Bugzilla system, so we can start writing a patch to fix it.”

There appear to be a few more entries for their Bugzilla system above. Web technology has matured a long way and makes it very easy to develop web sites across a wide range of screens – mobile apps are not the same thing and pose a different set of challenges.

To answer the question we posed at the beginning, it seems that ease of development is mostly a hygiene factor. The top platforms are not the easiest to develop for. BlackBerry 10 seems to have surprisingly high levels of continuing loyalty amongst developers despite the very poor sales for the platform to date, so perhaps there is some value in creating an environment developers really love to work with rather than one that is simply not painfully difficult.

The next frontier?

As we move towards a world of connected sensors everywhere and wearable devices are being hyped as the next big thing, an interesting sidenote is that Bluetooth was rated as the hardest API to use by developers across all platforms. After years of failing to reach its potential, Bluetooth is emerging as one of the key technologies enabling smartphones to talk to wearables and other external devices without sufficient power to maintain their own permanent internet connection. Perhaps this is an area for all platforms to consider revisiting, or an opportunity for an Internet of Things platform provider to abstract away the details.


Usage Analytics Shootout

Usage Analytics tools help developers understand their users and the way they interact with their apps. Measuring app usage in this way and using the data to help target improvements to the app can significantly improve revenues. We’ve already highlighted the duopoly in this tools sector, with Google and Flurry dominating. Our survey showed that 74% of developers made use of Google Analytics while 41% used Flurry. Clearly there’s some overlap here with developers using both and in fact less than 7.5% of developers who use this type of tool don’t use either Google or Flurry at all. However, lots of developers work on apps across multiple platforms for multiple clients and they may not always be able to use their first choice analytics tool. We asked developers to rate their primary analytics tool across a range of criteria. This data tells us which are developers’ first choice tools and how they compare.

Analytics Shootout


[box type=”alert”]The infogram service is currently experiencing some technical difficulties. We’ll bring back the interactive chart asap. In the meanwhile, you an find the filtered results mentioned in the article here.[/box]

Looking at all responses for developers primary tools Google and Flurry still dominate the market with Flurry slightly closer to Google and more than twice as popular as all of the other vendors combined. All of the tools show very high levels of developer satisfaction with Google slightly ahead overall. Outside of the top five selection criteria the only areas where other tools show significant advantages over Google or Flurry are custom views of the data and real-time analytics. If you have requirements on those areas it may be worth looking at the competition in more detail but for everyone else we can focus on the shootout between the top two.

Google beats Flurry in a head to head comparison

To try to get a more accurate comparison between Google & Flurry we filtered the data down to those developers who use both tools (and possibly others as well) such that they were in a position to make a direct comparison. This produces some interesting results; first, amongst developers that use both, Flurry is the primary tool for a majority of developers (53.1% vs 39.4%); second, on average, developers that use both tools rate Google higher on every single selection criteria, sometimes significantly so. The ratings gap between the two tools is magnified if we weight the criteria by the relative importance developers assigned in the survey. For the most important criteria, ease of integration, Flurry scores higher than Google when all responses are considered but the result is reversed when looking at only those who can make a direct comparison.

The future?

It seems Google has a slightly better tool but Flurry is still holding onto a majority of the developers that have tried both. The explanation for this slightly conflicting result appears to be that Flurry established itself as a leader in iOS analytics early and there is higher adoption of analytics amongst iOS developers in general. So, while Google’s analytics product may have the edge, it’s not sufficiently superior to justify switching for most existing users. Android ports or web apps may use Google analytics but the iOS app sticks with Flurry. This suggests that unless Flurry can improve their offering we may see their market share decline in future surveys as more developers adopt usage analytics. Given developer’s emphasis on ease of integration, the most likely disruption of the duopoly in this market would be an integrated offering – usage analytics combined with crash analytics and maybe also marketing analytics (install/referral tracking) in a single SDK.


Cross-Platform Tools Shootout

The “write once, run anywhere” concept may be pure fantasy for most apps but sharing code across platforms is desirable and in some cases essential to making projects economically viable. With the application frameworks for all the biggest platforms being in different languages, the market for Cross-Platform Tools (CPTs) to enable code reuse is understandably the largest one (in terms of number of competing solutions) we track. The time required to evaluate all of them is far beyond what most developers can afford to spend on such research. So, which tools are the best?

Balancing mindshare with developer ratings

In our last developer survey we asked CPT users to tell us what they considered most important when choosing a CPT and also to rate their primary tool (some developers use several) across multiple criteria. Because that report was primarily about tools, several of the CPT vendors promoted the survey to their developers. Although we try to weight responses resulting from different promotions to attempt to remove this sampling bias in our statistics, it’s not possible to eliminate it entirely from the relative popularity of the tools themselves. As such, although the developer mindshare is a useful indicator of quality tools, we shouldn’t trust that alone. Amongst the most popular tools, it turns out that CPT users are generally very happy with their choices.

The average score out of 5 for all of the tools with more than 30 sets of developer ratings is close to 4 and weighting that by the relative importance of each aspect increases the average for all of the tools except Qt.

Compare with care

[tweetable]It’s important to be careful when comparing scores for individual tools[/tweetable], since they may reflect the typical backgrounds and expectations of developers using them rather than some absolute rating. For example, Sencha scored 4.08 for “Native UI look and feel” despite having pure HTML5/JS/CSS components while Appcelerator only scored 3.86 here despite binding JavaScript logic to actual native components! Haxe (pronounced Hex) also shows a couple of issues like this. It’s a relatively unknown code translation tool which seems primarily targeted at former Flash developers, although by no means limited to that audience. Since the Haxe language can be compiled to most of the major programming languages it scores very highly on “Availability across platforms”. However, it’s important to note that unless developers want to build their own application framework from scratch or integrate with one in the target language manually they’ll also need NME, which does support a very wide range of platforms but not as many as some other CPTs. NME’s feature set is fairly gaming oriented, with access to further native APIs via native extensions, much the same as most of the other CPTs – there’s certainly not sufficient additional API coverage built-in to justify the increased score. Clearly it’s important to make a more thorough evaluation of tools before making a selection, even so, lots of satisfied developers can be a good indication of an interesting tool to evaluate.

And the winners are…

Using the weighted average score as our benchmark, overall Haxe came out as a clear winner in developer satisfaction. Second place went to Sencha, which seems to come out top on almost all metrics (except popularity) amongst general purpose web-centric CPTs. A very close third was RunRev’s LiveCode, which has recently gone open source with a dual-licensing model. None of these top 3 tools by developer satisfaction have more than 12% mindshare amongst CPT users, let alone the wider developer population. They all cover mobile and desktop platforms and between them cater to most tastes – there’s a strictly typed language (Haxe), web standards (Sencha) or a very high level dynamic language (RunRev). All of them are free to get started with, why not give one of them a try and find out why their users are so happy? After all, a happy developer is a productive developer.