App Thinning and iOS 9

Apple already talked in the keynote about how it had reduced the amount of space required the iOS 9 OTA update from around 4.6GB to 1.3GB, but a more transformative technology only got a passing mention: App Thinning. In short, apps in iOS 9 will leave your phone or tablet with more free space in the first place.

Say you have an iPhone 5C, which uses a 32-bit CPU and a GPU that doesn’t support the Metal API. Download a modern universal game, and that binary includes 64-bit code, iPad and “3x” iPhone 6 Plus assets, and Metal API code that it doesn’t need. It only needs the 32-bit code, “2x” iPhone-sized assets, and the OpenGL graphics code. App Slices will let your device download just the chunks your device needs.

Andrew Cunningham has a good overview of the developer features powering App Thinning, Apple’s effort to reduce app sizes in iOS 9.

I forgot that I had a similar idea in 2012, when Apple was rumored to introduce a Retina iPad that would increase app sizes going forward (as it did). I wrote:

I see two solutions. Either Apple gets the carriers to agree to larger download sizes, establishing a new “average” that should work for most apps (let’s say 60 MB as Panzarino suggests), or they rebuild the download mechanism completely by allowing devices to “ignore” resources they don’t need. The second solution would be a “cleaner” approach, in that it would address the root of this likely scenario – that is, devices downloading apps containing all kinds of images and resources for Retina and non-Retina displays.

By “localizing” images in a way languages are localized on the OS, Apple could find a way to know if an image is destined to an iPad or not. And if so, if it’s also destined to a Retina iPad, or old-generation iPad. Furthermore, in theory, this would also allow Apple to differentiate between images used by an iPhone and iPad which, right now, are always downloaded within the same, single .app package.

App Thinning – and the three core features behind it – sound promising, but we’ll have to assess their effects in practice and wait to see how many developers start supporting them. Apple doesn’t seem to be willing to discontinue lower capacity iOS devices, but at least they’re trying to save space in other ways.