What’s in it for developers? Well, it’s "a new software platform, which fully leverages Nokia’s investments in Smarterphone, which it acquired in 2012". Apps are developed in Java, similar to Series 40 apps development. The ‘new platform’ aspect means there are no apps other than those Nokia convinced (almost certainly paid) to be initially produced. The lack of initial apps might be an opportunity for developers. The larger questions are a) will there will be large market for these phones and b) whether developing markets offer app related revenue opportunities (are the users or companies willing to pay for apps or services).

As of writing this there’s no mention of the new Asha platform on the Nokia developer site which doesn’t communicate the right message for those who might be interested in developing for the platform.

Will this new Asha platform go mass-market? The Asha 501 is a ‘pretty’ phone that has few apps. The current competition is the Samsung Galaxy Y that has the highest smartphone market share (about 18% in India). The Galaxy Y is much uglier but has hundreds of thousands of apps (and 3G for that matter). The outcome might be be related to whether the developing world ends up preferring pretty phones or those that "get the job done".

Canalys released their worldwide smartphone statistics for Q2 2011 yesterday. An amazing 107.7 million units shipped in the second quarter of 2011. Only a few years ago I was saying the smartphone market was small compared to the market for all phones. Today, smartphones are ubiquitous and mobile development is no longer experimental but mainstream.

Here’s a graph I have created from the numbers…

Canalys omitted the Symbian percentage from their press release but we know it’s between 12% and 19% as they said Symbian is now in third place. I have been kind and given Symbian 18%.

Canalys said "demand for its Symbian-based smart phones has dissipated very rapidly" and "Fewer than 1.5 million Microsoft-based smart phones shipped during the quarter, equating to a mere 1% share of the global market, down 52% against shipments a year ago". These figures don’t bode well for Nokia’s forthcoming Windows Phone devices.

Android is now shipping over twice as many phones as iOS and had the strongest growth in Q2 2011. However, I think the end game will be more interesting.

The Vision Mobile Developer Economics report has an interesting chart showing fragmentation of the various platforms. That is, the number of versions of an app that have to be developed to cater for different versions of a given OS.

This concurs with my previous observation that problems of Android Fragmentation have been exaggerated. However, I suppose it depends on your reference point. As the chart shows, if you are only coming from iOS then it will seem more fragmented. If you previously worked on Java ME, Symbian, BlackBerry or Windows Mobile then Android Fragmentation won’t seem that bad.

Vision Mobile has an interesting new report on developer economics. There are lots of stats and charts comparing platforms but I’ll concentrate on just one specific observation on 3rd party app stores…

"This implies that the marginal cost of distributing an application through one more app store is significant, contrary to popular perception."

This situation echos what happened last decade, pre iOS and Android, when Handango became a dominant force in app distribution. While there were other app stores, that even had more attractive commission structures, it wasn’t usually viable for developers to use them because the extra effort didn’t translate to significant extra sales.

There are lessons here for both developers and third party app stores. If you are a developer you need to really consider if it’s worth submitting to 3rd party apps stores. I say this mainly in the context of Android because iOS and the Windows Phone ecosystems don’t allow for 3rd party stores unless you include stores that require jailbroken phones. If you are a 3rd party app store provider then you really need some special unique selling point or you are likely to fail.

When asked why Android works well across many phones while Java ME didn’t, he says that…

"Today’s high end phones have an incredible amount of RAM and CPU, which makes interoperability hugely easier for Android."

and

"Differences will creep in as the Android world ages: version skews, different bug fixes, and the handset makers attraction to ‘added value’ and ‘product differentiation’ will all take their toll without strict governance"

While I agree and have previously written about difference creep, I am not sure how more powerful phones necessarily make phones more interoperable.

I worked at Symbian for a year, on the Symbian Java VM, towards the end of it’s life and these are the things that I think are the main contributors to Java ME fragmentation…

– Differences in hardware. Almost all smartphones (not just Android phones) have converged on a very similar high specification. I’d say this similarity of phones has aided Android interoperability as opposed to them necessarily being powerful.

– Differences in JVM implementation. Different Java ME phones use a variety of JVMs that have interpreted the JSRs (specifications) in different ways. Android has one JVM so there are no differences across phones for a given JVM version.

– Bugs in JVM implementations. Again, the variety of Java ME JVMs implementing the same specification allows different ones to exhibit different bugs.

– Differences between successive versions of JVMs. Java ME and Android both suffer from this but Android less so because some phones can be upgraded to later OS (and JVM) versions.

– Additions to the official SDK APIs. This is part of the difference creep ("added value" and "product differentiation") James refers to. On any platform, additional APIs tend to be ignored by the majority of developers as they restrict the market for an application. Very few apps need or use these APIs. There’s a disincentive to use them.

One thing I should say is that the term ‘developers’ is a bit misleading in all of this. Mobile developers are driven (employed by) by handset OEMs, carriers, companies, brands, marketing agencies etc. so the economic insights of the Visionmobile survey speak as much for the industry as a whole as they do for individual developer impressions.

On my first quick read through I started to connect a few things together. On the addressable Market and monetisation, the research showed…

"Developers care more about addressable market and monetisation potential than any single technical aspect of a platform."

yet…

"… felt that the best aspect of their platform was the large market penetration, even if the actual market penetration was relatively small."

Leading on from this, there’s a disparity between the device installed base and the number of available apps for each platform. The apps that have greatest installed base have the fewest applications and vice versa. Developers have flocked onto the new platforms resulting in huge competition and low revenues…

"The dubious long-tail economics are reinforced by our findings on developer revenue expectations. Only five percent of the respondents reported very good revenues, above their expectations"

Now, developers say the…

"key challenge reported by mobile developers is the lack of effective marketing channels to increase application exposure and discovery"

My thought is that while more success might come through better marketing and exposure, this can’t happen for all (or even a large number of) developers. There’s a limited number of consumers on each platform that have a finite amount of time (and sometimes money) looking for apps.

I question what will happen with the even newer platforms: MeeGo, Symbian^4, Windows Phone 7 and Bada. Will developers stay away because they have been burnt (financially) by iPhone and Android or will they move to them because of the poor long tail revenue opportunities on iPhone and Android? Is there a finite audience for mobile apps (or at least people who want to spend money on them) and has this already been served (and targeted) by the iPhone?

Yesterday evening I went to the O2 Litmus/Oracle Java Developer Event. While the event was advertised as "bringing together some of the best and brightest in web and mobile to share their experiences and discuss the rich and relevant tools available today", I was a bit disappointed there were no new announcements or presentations by Oracle with respect to the future of Java ME.

Fragmentation (of Java) is less of a problem when using it for enterprise applications as the number phone types is limited and usually known

Feature phones (i.e. non-smartphones) running Java ME are still the de facto business phone for the majority of employees

People’s expectations of Java ME apps, post iPhone, are now much higher

From my point of view I am now seeing very few requirements coming in for Java ME apps. This is despite the fact that the vast majority of programmable phones are still Java ME. Smartphones still have a long way to go to reach the mass market and there are still opportunities for the current (or even new) platforms to take significant market shares.

I sense time is running out and may have already run out for Java ME or its successor. Oracle really needs to ramp up its ‘Java on mobile’ efforts and re-engage developers and handset OEMs if it wants to be part of the new mobile renaissance.

I will leave the many other sources to speculate why Apple have done this and discuss the ramifications on companies such as Adobe and others that create iPhone app generators and runtimes.

Instead, I find it more interesting to think technically about what Steve has actually said. This also has implications not just on iPhone apps but also on frameworks like Nokia’s Qt and widget frameworks (JIL’s and others) both of which are being promoted as the saviour of mobile development.

Steve said…

"We’ve been there before, and intermediate layers between the platform and the developer ultimately produces sub-standard apps and hinders the progress of the platform."

Much as I don’t like Apple’s tight control on developers, many of my past observations seem to be in alignment with Steve’s claims…

It’s very difficult to make a framework functionally complete. Most serious applications end up needing to use platform APIs that aren’t in the runtime. If this is the case then developers end up having to learn more (runtime AND underlying API AND how to bridge them) rather than less.

Additionally, something I haven’t previously mentioned is the memory-use issue. You can think of (most) use of a runtimes as consuming magnitudes more memory than the equivalent native application. Very recently, there have been great claims as to how many apps can be run at once under Symbian. However, what if a large proportion of these were using a runtime instead of being native?

It’s for this reason I believe Microsoft is being coy about multi-tasking under Windows Phone 7 (Apps run on Silverlight runtime). I also believe it’s another reason why Apple doesn’t like runtimes. They can significantly reduce the number of applications that can be run simultaneously.