Cross-platform development tools like PhoneGap and Xamarin have never been more popular. That’s the good news.
The bad news is that they may be popular for all the wrong reasons.
According to a new Visionmobile survey of 8,000 mobile developers, 30 percent of all mobile app developers now turn to such cross-platform tools, but not necessarily to improve their users’ experience. Instead, as the report shows, many developers use such tools to save themselves time and money.
This isn’t a recipe for a top ranking in the App Store.
And Then There Were Three
While the cross-platform tool market has been boiling with competition for some time, today only three platforms remain top-of-mind for most developers. PhoneGap (also known as Apache Cordova, the open-source project that powers it), Xamarin, and Unity now account for 70 percent of all primary development use:
This is a big shift since 2012. Just three years ago, Appcelerator and other products were serious competitors for developers’ attention. Since 2012, however, Visionmobile’s researchers write, “there has been a bifurcation in the market, with a few tools growing strongly in popularity and the rest being used by a smaller fraction of developers than before.”
In 2012, PhoneGap and other Apache Cordova-based tools accounted for roughly 30% of primary use. Now it has doubled its adoption. Xamarin, geared toward the Windows developer set, has spent those three years solidifying its place, while Unity has established itself with game developers.
Such consolidation is arguably a good thing, as it concentrates resources on three tools that serve distinct audiences, accelerating innovations therein. Yet the question remains: innovating for whom?
By Developers, For Developers
Dig a bit deeper into the Visionmobile data, and it’s clear that while cross-platform tools are gaining in popularity, they may be doing so for the wrong reasons:
While it’s admirable that developers want to support a variety of platforms, leverage existing skills, accelerate development, and do all this for little money, it’s not clear why their customers should care.
Of course, it depends on how we define “customer.” For those building enterprise apps, the “customer” is really the CIO or someone within IT commissioning the app.
For freelance developers (39% use CPTs) and dedicated enterprise IT developers (29%) working for such enterprise customers, less concern is given to the end-user of the app. In such a world, saving money, even if at the expense of a great user experience, is of paramount concern.
The second-biggest category of cross-platform tool users comes from digital content publishers, where such tools offer an intuitive way to build consistent user experiences.
But it’s not just news media and other digital content publishers that can deliver a great user experience through a cross-platform tools.
Don’t Forget Elbow Grease
No matter the developer shortcut or “crutch,” if you will—from JavaScript frameworks like AngularJS to cross-platform tools like Cordova—ultimately the quality of the resulting app comes down to the developer, not the tool.
And maybe, just maybe, the reason we see poor apps resulting from cross-platform tools is that they make it so easy to build apps in the first place.
As Cordova developer Brian Leroux told me in an interview, “There are great apps in every tech and bad apps too. Apache Cordova lowers the bar so far that we see a large amount of the bad per Sturgeon’s Law. This is a consequence of being the most popular solution.”
It’s also worth noting that some so-called developer benefits actually improve users’ experience, too. Like how Cordova makes it easy to hot-patch an app without roundtripping it through an app store. The ability to iterate quickly on improving an app also brings users benefits.
Even so, there’s room for improvement.
One particularly promising new entrant to the cross-platform camp is React Native, a project hatched at Facebook, also known as ReactJS. As Mozilla developer James Long writes:
It only takes a few minutes playing with React Native to realize the potential it has. This works. It feels like I’m developing for the Web. But I’m writing a real native app, and you seriously can’t tell the difference. At the UI level, there is no difference; these are all native UIViews beautifully sliding around like normal.
If React Native points to the future, and I think it does, we’ll soon get all the developer-oriented benefits of cross-platform tools without the current compromises that keep many developers from trying them. But only if we remember that app development is ultimately for the users of those apps, not the developers.
Photo by Jason Howie; charts by Visionmobile; Xamarin shirt photo by Adriana Lee for ReadWrite