13CHAPTER 1: Introduction
In theory, Cocos2D apps can run on any device with support for OpenGL ES 2.0 running at least
iOS 5. That makes the iPhone 3GS and the first iPad the oldest iOS devices you can run your app
on. In theory.
However, there’s a huge difference in terms of performance between the iPhone 3GS and the
latest iPhone, and the first iPad compared to the latest iPad. Mobile technology is advancing fast,
definitely faster than desktop computer technology.
Furthermore, market penetration of each newer iOS device is significantly higher than its
predecessors. Therefore, supporting older devices like the iPhone 3GS, perhaps even the non-
widescreen phones iPhone 4 and 4S, may not always be the financially sound decision that it seems
to be. Historically, and in stark contrast to the Android market, you’re more likely to generate a
larger number of sales by specifically supporting the latest iOS version, the latest models, and their
exclusive features rather than trying to reach as far back as you can.
My personal recommendation is to follow Apple as it introduces new models and discontinues old
models. If you are unsure which of them to support, support those that are capable of running the
latest iOS version when starting a new project. For a list of iOS devices and their newest supported
operating system, refer to this list on Wikipedia: http://en.wikipedia.org/wiki/List_of_iOS_
devices.
For iOS 8, the oldest targetable devices are iPhone 4S and iPad 2. Discontinued iOS models very
quickly fall by the wayside in terms of app sales. Almost the same goes for iOS versions. You
can certainly require the second-to-latest major iOS version as your minimum deployment target
when starting a new app project. For example, at this point in time, iOS 8 is the latest iOS version.
By supporting devices running iOS 7.0 and up, your app has a potential addressable market that
amounts to 94% of App Store usage as of October 5, 2014.
Apple periodically updates a chart that tells you what iOS versions users are using when they
visit the App Store: https://developer.apple.com/support/appstore/. This chart reflects your
addressable market, not the potential millions of devices still running iOS 6 and earlier. Most of those
older devices that have been sold are either broken, stolen, or forgotten—or for the most part, their
users hardly get any new apps. Maybe those users are perfectly happy with the device as is, or
maybe they know that new apps are unlikely to run on their device.
But it’s even more important to ensure your published app keeps running on the lowest supported
device and iOS version as long as possible to keep your existing customers happy. That alone
speaks against trying to support iOS versions as far back as theoretically possible, and this is
particularly true for games that are more demanding on device resources than most other types of
apps.
Consider that the performance span between an iPhone 6 and an iPhone 3GS is tremendous. In
the GeekBench benchmark, the iPhone 6 (Plus) is more than 10 times faster than the iPhone 3GS.
Compared to the iPhone 4S, the iPhone 6 (Plus) is still over 7 times faster in the same benchmark.
You’ll find an up-to-date performance comparison of all iOS devices here: http://browser.
primatelabs.com/ios-benchmarks.
Based on this benchmark, it’s not hard to predict that developers of graphically intense games will
stop offering their games or reduce quality on iPhone 4S and earlier, iPad (third generation) and
earlier, and the original iPad mini (non-Retina). Too far ahead are the iPhone 5 generation and newer
devices in terms of performance.