Skip to main content

iOS and Android

Range of hardware devices.

GPU (Graphics Processing Unit) bound mobile hardware improvement follows "Moore's Law", with chip manufacturers alternately die shrinking their CPU's - reducing power consumption, and re-architecting their processors, doubling the number of transistors. When these improvements are combined with the admittedly slower improvements in the energy density of battery technology, it allows the production of increasingly faster, cooler, longer running and cheaper devices.

Apple.

Since launch there have been 17 distinct iOS hardware devices, with storage from 4Gb to 128Gb, and a wide range of system and video RAM, screen size and resolution.
iOS runs on:
iPhone, iPhone 2, iPhone 3, iPhone 3GS, iPhone 4, iPhone 4S, iPhone 5
iPod touch generations 1, 2, 3, 4 & 5
iPad, iPad2, iPad3, iPad4 (the official Apple designation doesn't use these numbers)
iPad mini
iOS itself is in the 6th major release, with iOS7 available currently to iOS developers for testing.

The release cycle varies for each device, but in all cases averages under a year.
Mac Rumours offer this information in their buyers guide (2013)

iPhone:
Last ReleaseSeptember 21, 2012
Days Since Update321 (Avg = 338)
Recent Releases - days between releases
Sep 2012 353 days
Oct 2011 467 days
Jun 2010 370 days
Jun 2009 344 days
Jul 2008 156 day

iPod touch:
Last Release May 30, 2013
Days Since Update 70 (Avg = 345)
Recent Releases - days between releases
May 2013 233 days
Oct 2012 371 days
Oct 2011 398 days
Sep 2010 357 days
Sep 2009 365 day

iPad:  
Last Release October 23,2012
Days Since Update 289 (Avg = 311)
Recent Releases - days between releases
Oct 2012 230 days
Mar 2012 362 days
Mar 2011 342 days

iPad mini:
Last Release October 23, 2012
Days Since Update 292 (Avg = ?)

Android.

The Android developer deployment tool for the Google Play Store indicates there are 2462 different devices that run Android.
Samsung are seen as the market leader, with regular prominent outputs from HTC and LG in the phone space, and Google Nexus, B&N Nook and Amazon Kindle in the tablet space.
The release cycle for devices is quicker than the average phone contract in UK, driving upgrades.

Chart showing growth of Samsung Android devices compared to overall worldwide smartphone sales - source - Kleiner Perkins Caufield & Byers Internet Trends report 2013

Adoption rates.

The Game Developer Magazine Survey for 2012 indicated that:
"Of the iOS developers, 39.4% targeted devices running iOS version 4.1 and above, compared to 30.7% targeting iOS version 5.0 and above, 16.5% aiming for 4.0 and above, and 13.4% developing for version 3.0 and up."

OS releases follow a similar path to the hardware, in order to benefit from the improved hardware, Apple have committed to a yearly release cycle. The adoption rate for iOS revisions is strong.

OS updating isn't so prevalent with Android devices, which are often bound to a specific version of Android, and often have vendor additions.
However data collected from the Google Play store (1st Aug 2013) indicates that over 40% of Android devices are running the latest version of the OS (Android 4.2.x JellyBean ), and over 60% are running version 4.x.x   Android OS refresh cycle.

Chart showing Android OS version adoption rates- source Android Play Store


The level of device upgrades - and handset renewal rates being tied to contracts - means it’s possible for a developer to build for a substantial section of the activated devices on a 12 to 18 month revision cycle.

These adoption rates mean that a developer for iOS or Android is likely to be able to target current or previous OS versions as a minimum requirement, thus reducing the number of workarounds, and fallbacks for unsupported features, as the user is more likely to be running up to date version of the OS. However this also means the effective sales window for an OS optimised application is reduced, the time to market for applications must be faster, alongside a need to extend the maintenance and  more frequent app update cycle. Currently app updates tend to be free, providing an obligation on developers to provide ongoing support, without additional revenue.

Languages and Design Patterns.

There doesn't seem to be a scarcity of developers with skills for developing Objective C, or Java, and the languages have a fair bit in common.

iOS - Objective C.

 Objective C, is a superset of C, supporting Object Oriented approaches to development. It was devised in the 1980s and still maintains some archaic practices such as split header and implementation files. Because there is no garbage collection even simple tasks like declaring a property take several steps, and require resource deallocation at the end (this has been made easier with the use of automatic reference counting). The Xcode toolset, which includes a drag and drop Interface builder for iOS development is provided free of charge to registered Apple developers. The tools are robust and supported by comprehensive documentation on the Apple API's and HCI (Human Computer Interaction) guidelines, which mean an iOS user experiences  well designed and consistent navigation and controls.  Building native iOS apps in Apple's Xcode requires the adoption of a Model View Controller (MVC) design pattern (MVC is Apple's preferred way to handle objects).

Android Java.

Android Java is a version of Java with touch extensions, and whilst it has a C like syntax, though unfortunately the Java compiler won't compile C code.
The Android Studio provided by Google is a full featured IDE, built on IntelliJ. Because of the very mature nature of Java there are a wealth of other development tools available.


Refs

Intel (2013) Moores law. Available at: http://www.intel.com/content/www/us/en/silicon-innovations/moores-law-technology.html Accessed on [11-8-13]

Samsung (2013) - Samsung CPU development roadmap 22nm and beyond. Available at:  [Accessed on 18-8-13]

MacRumours (2013) Mac Rumours buyers guide. Available at: http://buyersguide.macrumors.com/ [Accessed on 9-8-13]

Google Android Developer Resource. (2013) Current Android Analytics data- Platform versions, Screen Size and density and OpenGL version.Available at :  http://developer.android.com/about/dashboards/index.html [Accessed on 28-5-13 - updated fortnightly]

Primate Labs iOS and Android benchmarks - available at http://browser.primatelabs.com/ios-benchmarks and http://browser.primatelabs.com/android-benchmarks [Accessed on 18-5-13]

Android Developer Resource. (2013)  Android distribution control. Available at: http://developer.android.com/distribute/googleplay/about/distribution.html#stats [Accessed on 11-8-13]

Google Android Developer Resource. (2013) Android version uptake at August 1 2013. Available at: http://developer.android.com/about/dashboards/index.html [Accessed on 11-8-13]

Popular posts from this blog

live

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…