Feature: Are you planning to develop a mobile app?
By Chris Loftus, Software Alliance Wales, Aberystwyth University
Over the last few years the SAW team at Aberystwyth have run multiple workshops and CPD courses on Android and iOS development, as well as organising iOSDevUK, the first ever conference of its kind in the UK (http://www.iosdevuk.com/). Drawing on such experience, this article examines the choices developers should consider when planning to build a mobile app.
In the first quarter of 2012 Android remained the leading worldwide smartphone operating system, increasing its share from 36% in Q1 2011 to 56% in 2012 (Table 1). Apple’s iOS increased from 17% to 23%. These increases were at the expense of most of the smaller players.
Table 1. Q1 2012 operating system by smartphone unit sales. Gartner: http://www.gartner.com/it/page.jsp?id=2017015
Indeed, the proportion taken by Android increased significantly during 2011 (Figure 1).
The decline of feature phones is also clear with 2011 worldwide smartphone sales accounting for 472 million units, or 31% of all mobile phones sold, a rise of 58% from 2010 (Gartner: http://www.gartner.com/it/page.jsp?id=1924314).
Although Android dominates the smartphone market, iOS, through Apple’s iPad, clearly dominates the media tablet market (Table 2) with 66% iOS and 29% Android in 2011, with Gartner predicting a respective share of 61% and 32% in 2012.
Concurrently, there has been a reduction of PC sales as users who do not need to do extensive typing switch to using tablets (Gartner: http://www.gartner.com/it/page.jsp?id=2011516) and this trend is likely to continue.
Table 2. 2011 media tablet unit sales (1000s) by operating system. Gartner: http://www.gartner.com/it/page.jsp?id=1980115
Apple currently dominates the large enterprise sector. Table 3 (below) summarises activations across both smartphones and tablets (http://www.tuaw.com/2012/01/26/good-technology-report-shows-apple-still-dominates-enterprise-ac/). This situation may change however as companies continue to move to towards a Bring Your Own Device (BYOD) policy, notwithstanding issues of security (http://www.bbc.co.uk/news/business-17017570).
Table 3. Fortune 500 device activations in 2011. http://www.good.com
In sum, whilst these trends offer opportunities for software developers the question remains of where best to focus their efforts. From the figures, it is clear that the two big players are Android and iOS, and are likely to remain so for the foreseeable future. Consequently, developers may be tempted to build cross-platform apps for both Android and iOS. However, this may prove to be too expensive. Moreover, given language, architectural and user interface differences, porting an app from one platform to another is almost as difficult as developing apps from scratch. This seems to suggest that developers, at least initially, choose to develop for one of these two platforms.
Actually, the first question developers should ask is “do I need to develop a native app, or will a mobile web site suffice?” If you are porting an existing non-mobile web site or creating a new one that does not require extensive access to native services on the mobile device, such as location services, access to a local database or the camera, then making your web site work on mobile devices is relatively straightforward. Moreover, you have the advantage of creating a web site that is cross-platform. Clearly, there will be some browser compatibility issues to rectify, and you will need to take a responsive web design approach to deal with different browsers. Despite this, these issues should be surmountable.
If, on the other hand, your application needs to look like an app rather than be constrained by a browser, having to continue running when users are offline, and requiring access to device services, then you will probably need to build a native app. If you decide to build a native app then you will probably choose either Android or iOS, at least for the main variant of your app. But which should you focus on? There are more issues to be considered than simply the number of iOS or Android activations.
Does the development team have Java (for Android) or ObjectiveC (iOS) expertise? iOS also requires the use of Macintosh machines. The quality of the development environments is also a consideration. The most widely used environment for Android is Eclipse and its Android Developer Tools plugin. For iOS it is Xcode. Although subjective, in the author’s view Xcode is clearly a more polished environment, with the app simulator running at lightning speed when compared with the Android emulator.
The process of publishing apps on either the Apple App Store or Google Play market may also influence your choice. The App Store has a much more vigorous approval process. Apps undergo basic reliability testing as well as other forms of analysis. The approval/rejection process may take a number of days. Apps must also use Apple approved libraries. The author has come across a case where the provided Bluetooth library would not communicate with a non-Apple approved Bluetooth device. The same app was built on Android and worked without any problems.
The openness of Android through the Open Handset Alliance (http://www.openhandsetalliance.com/) also brings its own problems for developers. Unlike Apple, Android is supported on hundreds of different devices sporting different hardware features, screen sizes and resolutions. This makes the development of apps that work seamlessly across such diverse devices quite complex, despite support provided by the Android software development kits and tools.
The Android operating system also comes in many flavours of cake: Cupcake (1.5), Donut (1.6), Éclair (2.0-2.1), Froyo (2.2), Gingerbread (2.3), Honeycomb (3.0-3.2) and now Ice Cream Sandwich (4.0-4.0.3)! Each has its own set of new features and although apps developed for an early version should be forwardly compatible with later versions, it is incumbent on the developer to test across the full set of operating system versions and device shapes and sizes (http://developer.android.com/resources/dashboard/platform-versions.html).
What about revenue generation? If you plan to sell your app or make money through advertising space then iOS comes out on top. Table 4 shows that a greater proportion of iOS apps are paid for rather than free. Perhaps users are more comfortable with purchasing content using the Apple iTunes mechanism than through Google Checkout, now Google Wallet (http://www.edibleapple.com/2009/12/30/why-apples-app-store-has-a-built-in-advantage-with-itunes/)?
Table 4. Free vs paid for apps in the US (top grossing 200), November 2011. DISTIMO: http://report.distimo.com/
It seems that many Android developers are taking the freemium approach to making money: starting free and then charging for the full version or for virtual content, such as moving to deeper levels in a game (Table 5).
Table 5. Proportion of revenue generated by freemium apps in the US (top grossing 200), November 2011. DISTIMO: http://report.distimo.com/
In terms of overall revenue generated, at least in the three main US app stores, Table 6 shows that iOS is the clear leader
Table 6. Total revenue as a percentage in US (top grossing 200),November 2011. DISTIMO: http://report.distimo.com/
So before you decide whether to go for Android, iOS, both or something else do ask yourself a number of questions and make decisions based on your answers:
• Are you building a mobile website?
• Will the app run satisfactorily using cross-platform technologies without onerous native plugin development?
• Are you targeting tablets or handsets or both?
• Is the use of open standards and technologies a key factor?
• Do you want to target the largest number of devices despite revenue potential or is revenue generation the key factor?
• Will target you app at enterprises?
These questions are not exhaustive. You should also consider demographics and the kind of app you wish to build, etc. The Cloud Four Blog (http://blog.cloudfour.com/a-comprehensive-guide-to-mobile-statistics/), although a little dated, provides links to many further sources of data that should help you make that platform decision.
About Chris Loftus
Chris Loftus is a Course Provider for Software Alliance Wales, working at Aberystwyth University Computer Science Department. He has taught, researched and practiced software engineering since 1985. Interests include software development for mobile platforms, the server-side and agile development (http://www.linkedin.com/pub/chris-loftus/11/bb8/863)