Trimming the fat - here's how Apple is making iOS 9 & apps smaller in size

Trimming the fat - here's how Apple is making iOS 9 & apps smaller in size
As advanced operating systems become even more advanced, their physical footprint — that is, the amount of storage space they occupy on your device — usually grows. Storage space, though? Well, where smartphones and tablets are concerned, storage doesn't grow. It's 8 or 16GB for the base model, 64GB for the high-end version, and 128GB for deep-pocketed individuals.

The way things have been going 'till now, those on the bottom of the pyramid have been ending up with less user space after major OS updates. To provide an extreme and thoroughly fresh example of this tendency, owners of the new Sony Xperia M4 Aqua, the 8GB model, have exactly 1.26GB of user space available out of the box! Granted, the latest version of Android actually takes about half of that space, and Sony treated themselves to an additional 2GB of data to install...  ahem, Sony stuff. You can't do anything about it unless you root and void your warranty, but thankfully, where this particular model is concerned, users can pop in a cheap microSD card and go about their day!

That's not the case with the iPhone and iPad, though. The initial iOS 8 update was a 1GB download that could ultimately take up to 5 gigabytes of storage to install, depending on how up-to-date your device was prior to the installation. Owners of 8GB iOS devices who updated were in for a nasty surprise, as 3GB of spare space is very little in this day and age, especially when microSD is not an option.

With iOS 9, Apple has implemented several cures for this particular itch, which could leave both users and developers much happier than they used to be. At yesterdays WWDC keynote, we got to learn that the iOS 9 update should take as little as 1.3 to install when it's delivered over the air.

But what's making the otherwise lean and efficient iOS grow a bit of cushion here and there? For starters, the way apps are distributed on different devices is somewhat compromised, which is starting to pose an issue. When Apple bakes a stock app into iOS, or you grab one from the App Store, the download includes all assets scaled for literally all the iOS devices it supports. So you're using a 64-bit iPhone 5s with its 4-inch screen, and you download an app that also includes three times bigger assets made for the iPhone 6 Plus, along with 32-bit code for older devices. What's up with that? 

Of course, Apple realises the inefficiency of this method, which is why it designed iOS with so-called app thinning. App Thinning is a set of three mechanisms that developers can take advantage of to reduce their applications' file size without impacting the quality of the experience.

First, Apple is letting developers upload complete versions of their apps to the App Store, but the artwork is being tagged for different devices inside an Asset Catalog. The App Store reads into it and compiles a device-specific version of the app upon downloading. The potential data savings are significant across the entire iOS-powered spectrum.

Second, Apple is wheeling in On-Demand Resources. This allows a modular approach to designing apps, where specific chunks of content are being downloaded on the fly when they are needed, and then automatically flushed when they've served their purpose. In an example from Apple's documentation, a game is split into levels with individually tagged assets and developers can specify when they are needed and which pieces of content should be axed from the device first.

The icing on the cake is Apple's on-demand app compiling, which it named Bitcode. Developers no longer upload pre-compiled binaries, but rather an "intermediate representation" — probably a package containing the source code and resources —and this base gets compiled according to the user's device. An advantage of this workflow is that developers automatically benefit from the latest compiler improvements by Apple without having to resubmit or modify their apps. Bitcode is still optional for iOS apps, but compulsory for native Apple Watch apps.

And that's Apple's solution to the storage problem, in a nutshell. We'll see whether the effort has paid off this fall, when iOS 9 ships.

source: Apple, Ars Technica

FEATURED VIDEO

24 Comments

1. gaming64 unregistered

Now this is the first time I see Apple innovating for real since Touch ID.

4. frydaexiii

Posts: 1476; Member since: Dec 01, 2011

No it isn't, it's just reducing the redundancy that they didn't bother to remove before.

17. Pulkit1990

Posts: 46; Member since: May 08, 2014

Android also needs to do this , I am an android app developer and i think if it intelligently segregates the packages for different Api android apps will become even smaller.

22. vincelongman

Posts: 5747; Member since: Feb 10, 2013

I believe Android already sort of does this OTA are exactly like this, hence why OTAs are usually under 300MB for a bug fix, 300-500MB for a minor update, or 500-1000GB for a major update But the Play Store isn't quite like this If I download an app, the PlayStore does choose the apk for 32-bit and API level 21 or 22 (for my Nexus 5) But it doesn't choose based on screen density, it gets all of the them Except Play Services, which does get the apk for you device's density as well But yea, definitely room for improvement since those assets take up the large proportions of apks (unless vectors are used, but most apps don't use vectors AFAIK) Only issues I see is for Chromecast or external monitors, when your device isn't running apps at its native density, but that shouldn't be too hard to fix, just scale down the assets or something like that

10. waddup121 unregistered

nice nice

2. cnour

Posts: 2305; Member since: Sep 11, 2014

Google will have some works to do.

5. Bootutu

Posts: 228; Member since: Jul 11, 2013

You do know that the Play Store already does that right? If you have a 64 bit System, play store will only download the arm64 version for you unless if 64 bit is not available. Go to settings, Application manager and check Apps like Google App(Version 4.6.10.19.arm64).

7. E.N.

Posts: 2610; Member since: Jan 25, 2009

What about the rest of the stuff mentioned in the article?

18. shuaibhere

Posts: 1986; Member since: Jul 07, 2012

Google can't because...there are thousands of Android phones out there

8. ILikeBubbles

Posts: 525; Member since: Jan 17, 2011

google has been doing this for a LONG while... that's why some apps have had compatibility issues.. and this is a huge part of the "fragmentation" problem everyone seems so concerned about. Welcome to the party apple.. enjoy.

6. Ordinary

Posts: 2454; Member since: Apr 23, 2015

Android 5.0.1 TW has 1.89GB, AOSP most likely have under 1.5GB

24. 99nights

Posts: 1152; Member since: Mar 10, 2015

Ugh you just don't know what you're talking about and is quite enbarassing. Just read everyone else's comments..

3. drunkenjay

Posts: 1700; Member since: Feb 11, 2013

great news.

9. CreeDiddy

Posts: 2273; Member since: Nov 04, 2011

This is great to hear from Apple. I am eager to see the results for all models of available storage. It should be posted within the next month or so.

11. Jamoga

Posts: 187; Member since: Dec 17, 2014

i likes it! efficient and less clutter.

12. Napalm_3nema

Posts: 2236; Member since: Jun 14, 2013

The iOS 9 Beta 1 is 2.48 ZGB (The ipsw). Using it now.

13. darkkjedii

Posts: 31547; Member since: Feb 05, 2011

Does it have multi window?

14. kryme

Posts: 469; Member since: Oct 24, 2013

Only iPad a2 has the split screen the rest just slide in windows

20. nodes

Posts: 1163; Member since: Mar 06, 2014

how is the performance on iPad Air, or Mini 2? planning to try if the performance is any better than 8.3.

15. jove39

Posts: 2148; Member since: Oct 18, 2011

still lot of fat...my oneplus one's fastboot archive is of 579MB only...compared to 1.3GB iOS 9 :)

16. Tizo101

Posts: 597; Member since: Jun 05, 2015

so now ios users can expect their apps to be the same size as their google counterparts? (instead of 2 to 3 times as big)

19. DevZA

Posts: 1; Member since: Jun 09, 2015

So does this mean I'll have more space on my 16gb device for my music etc??

23. dimas

Posts: 3406; Member since: Jul 22, 2014

Great news for older iphone models. We just have to wait for OTA if it works efficiently in real world application.

25. H2CO3

Posts: 1; Member since: Jun 11, 2015

I only registered so that I can inform everyone reading this article that the paragraphs about bitcode-based app thinning are complete nonsense. Whoever wrote this article has obviously no idea what LLVM bitcode or an "intermediate representation" in general are, and didn't even take the time to google the words he/she hasn't seen before. First off, "bitcode" is not a proper noun, let alone a product name. In this context, it refers to the intermediate representation of the LLVM compiler infrastructure library – the library that Apple uses for optimizing C, Objective-C, C++ and Swift code (compiled by clang and swiftc, respectively). "Bitcode" does NOT, I repeat, NOT refer to the thinning process itself. It is the type of code that gets uploaded to the App Store by app developers. It isn't a new invention either. Apple has been using LLVM for ages, and LLVM uses LLVM bitcode as (one of) its intermediate representation(s) from day 1 (the other two being a human-readable, assembly-like text format, and trees formed by a set of C++ objects, both isomorphically mapping to the binary bitcode format). This _is_ the "intermediate representation" that the writer of this article mistakes for source code. No source code is ever sent to Apple. LLVM bitcode is binary code for an abstract, CPU-like architecture with some mathematical constraints that aid optimization. LLVM bitcode is not a high-level language in which developers write their applications. Those languages are C, Objective-C, C++ and – more recently – Swift.

Latest Stories

This copy is for your personal, non-commercial use only. You can order presentation-ready copies for distribution to your colleagues, clients or customers at https://www.parsintl.com/phonearena or use the Reprints & Permissions tool that appears at the bottom of each web page. Visit https://www.parsintl.com/ for samples and additional information.