Skip to main content

State of the (mobile) nation

"Mobile first" is an oft heard phrase, and for very good reason. The five years since Apple opened their iTunes App Store on July 10th 2008 have seen the emergence of completely new platforms and markets. Apple(2008) proudly declared 10 million app sales in their first weekend of trading, and by May 2013 Apple(2013) reported 50 Billion apps had been downloaded from the Apple iTunes store.

Graph showing the number of iTunes App sales from July 2008 to date, based on figures provided by Apple:

At the 2013 Google IO conference, Google Senior Vice President of Engineering Vivek "Vic" Gundotra (2013) announced 900 million active Android devices and  48 billion app downloads from the Google Play store, and estimated that the current rate of Android activation was 3 times the global birth rate.

Both platforms are powerful and dynamic, and although they share a common architecture based on the reduced instruction set architecture (RISC), and chipset (ARM) they use different operating systems and toolchains:
iOS is based on Mac OS X, an implementation of BSD Unix with touch features and the Objective C language,  and Android, a version of GNU/Linux with touch layers and a form of Java.

This means it is not possible to maintain one single native code base across the platforms, and indeed requires a different approach when designing for each.
For example Java has garbage collection, whereas Objective C does not (its solution is  Automatic Reference Counting as of iOS5).

For my recent CS project: "A review of the practicalities of cross platform development for mobile games on iOS and Android." I investigated the practicality of developing an application using a common non native code base to deploy to the major platforms - iOS and Android.

A review of the current dominant mobile platforms.

Mobile platform fragmentation.

The current market for applications is restricted to a subset of the whole mobile market, but still encompasses a wide range of vendors supporting a number of operating systems including Android, Windows Phone 8, iOS and Blackberry.
The sector includes phones, mp3 players(iPods), e-book readers(nook and kindle) and tablets, with a wide range of form factors and specifications.
Mobile technology analysts Asymco(2013) note the dominant platforms are iOS and Android, with Windows and Blackberry having a small market share. New platforms are constantly emerging, and whilst it appears Symbian, the old Nokia platform has been supplanted by Windows Phone, Mozilla has announced (2013) a low cost open source platform to make use of low power/ low cost handsets, and Canonical (2013) announced their Kickstarter campaign to build a device that offers desktop processing in a pocket device.

Chart of worldwide mobile OS market share - source Asymco (2013)

Market size.

The Kleiner Perkins Caufield & Byers Internet Trends report (2013), quantifies the continued mobile adoption rates, showing a rise in Apple devices from a 16% share in Q1 2010 to 22% share in Q4 2012. Samsung, the strongest Android provider grew from 4% to 29% over the same timeframe. This growth is worldwide, with smartphone growth 28% per year in the US, and 31% in China,
The report indicates tablet device growth is faster still, and overtook desktop PC and notebook shipments combined in Q4 2012, and that mobile devices now account for more than 15% of the entire global internet traffic.

Chart showing rise in purchase of tablet devices compared to desktop and laptop PCs - source Kleiner Perkins Caufield & Byers Internet Trends report 2013

The figures are open to interpretation, with some Analysts like Horace Dedieu (Asymco 2013) noting that whilst Android has the greatest number of activated devices, some of these, like the Nook e-ink reader are just running the core libraries and the Android virtual machine - Dalvik, not the Application Framework, and so don't form part of the application development ecosystem.

Chart showing monthly net user gains in mobile platforms - source Asymco(2013)

Platform popularity.

The Game Developer Magazine survey 2012 reported that:
"iOS was the most popular development platform, with 94.6% of surveyed developers releasing games for iOS,
followed by Android (70.7%),
Windows Phone 7 (8.8%),
BlackBerry OS (2.7%),
Symbian (2.0%),
and Samsung Bada (1.4%)."

If viewed alongside the Apple and Android activated device and download figures noted in the introduction, it is apparent that building for a single platform is viable, and building cross platform has the potential to double the customer base.
However maintaining a code base for each platform potentially doubles the overhead, and likelihood of generating defects in code, as well as requiring a disparate range of coding skills and understanding in the development team.

It would be useful and efficient to be able to build a single code base and port it to the different platforms, however whilst it appears that an Android device and an iOS device are similar, it should not be taken for granted that there is enough commonality in specific hardware and software areas to support cost effective cross platform development, in fact there may be compromises or special versions required when building for specific devices on the same platforms, due to the diverse specification of target devices.


Apple (2008) 10 million app store downloads in first weekend. Available at: [Accessed 19-7-13]

Apple (2013) Apple’s App Store Marks Historic 50 Billionth Download. Available at: [Accessed 17-5-13]

Google SVP Engineering Vivek "Vic" Gundotra (2013) Google/io 2013 Keynote. Available at - [Accessed on 15-5-13]

Mozilla Foundation(2013) Firefox OS. Available at: [Accessed on 11-8-13]

Canonical (2013) Ubuntu phone . Available at: [Accessed on 11-8-13]

Dediu, H. - Asymco (2013) US mobile market shares. Available at: [Accessed on 11-8-13]

Kleiner Perkins Caufield & Byers (2013) The Kleiner Perkins Caufield & Byers - Internet Trends report 2013. Available at: [Accessed on 4-8-13]

Popular posts from this blog


Spine again - animating game assets

Laura Tallarday gave a neat demo of how to build an animation in Spine on the CoronaGeek Hangout, so I had a bash at chopping up an image and animating it.
The plan is to add some more sophisticated animations to the new game "Duck sized horse".. but as was discussed in the show adding a whole bunch of spine animated objects might hammer a mobile device... and as the aim is to have 100 tiny duck sized horses, I'd best choose another approach for them.

anyway here's a swaying viking...

Using Corona SDK

Corona Architecture Overview
Diagram showing the Corona SDK architecture -source Walter Lua - CEO Corona The development process. I built the game "Ninja Dinosaurs vs Pirate Robots" in a series of 4 development sprints. I used a familiar game format, the "Infinite Runner" to guide the overall structure, and built the game using the Agile development methodology and Simplicity principle: "simplicity: write the simplest code to do the job, do not provide hooks in your code for ‘future needs" - this prevents scope creep. Studies by Jones (2009) have shown that Agile is most effective with small teams. Agile focuses on swift iterative cycles creating instances of working code, which are constantly reviewed and guided by the end users rather than a rigid commitment to a fixed system architecture. It values working code over heavy documentation, as might be encountered in a more traditional waterfall development approach.
Game Summary. Whilst the game is an inf…