App Thinning for Mobile Applications
These days, millions and millions of mobile applications are available in stores. Leading mobile operating systems Android and iOS have 2.46 Million and 1.96 Million apps, respectively.
Even though modern mobile phones have evolved a lot, storage is still a big concern. Users would like to have photos, music, docs, and apps in 16 to 512-gigabyte storage and it is the developer’s responsibility to keep their application size in control to make downloads fast and increase user experience.
Here comes App Thinning for iOS.
Types of App Thinning
App thinning is a concept for modern-day applications that has a lot of resources on it. This helps developers make lightweight apps, that download fast and occupy minimum disk space.
There are four types of App Thinning:
- App Slicing
- Bit code
- On-demand resources (ODR)
- ABI Stability (from Swift 5)
How Slicing Works:
“App slicing is the process of creating and delivering variants of the app bundle for different device specifications”.
For example, non-retina displays (like iPhone 3) require low-quality image assets, whereas retina displays (like iPhone greater than 4) need high-resolution image sets. Whereas OLED displays should have very high-resolution images.
App Slicing will do this for you. It will slice resources for different combinations of device specifications like arm6 or arm 7, Display type, 32bit or 64bit OS, and upload to the App Store. Depending on device spec only a particular package will be downloaded.
How Bitcode Works
“Bit code is an intermediate representation of compiled programs.”
Bit code makes the app smaller by eliminating optimization done for different architecture on the device itself, instead downloads only the relevant optimization from the store.
If Apps pushed to the app store connect are bit code enabled, they will be compiled and linked to the store. That helps Apple to re-optimize your app binary in the future that helps to avoid submitting a newer version to App Store. Enabling Bitcode will help in building thinned .ipa files, in which the size will be comparatively low.
How On-Demand Resources Works
“On-Demand Resources enable faster downloads, smaller app, and richer app content.”
Gaming applications won’t require images, 3D models, maps, the music of the last level, whereas the user is playing level one, in ODR you can tag resources as groups that will be hosted on Apple’s servers and can be downloaded at required stages of App.
Same as above mentioned resource, Using ODR In-App purchase resources can also be downloaded when the user buys it. Kudos to ODR.
Why does ABI Stability matter?
Code compiled with older swift versions will include Swift standard libraries within the binary file itself, this will increase the size of application dramatically.
Swift 5 comes with ABI stability (Application Binary Interface), that means swift runtime will be incorporated with the operating system itself. Swift libraries are no longer needed to be compiled with the code.
That is some insight on App thinning for Mobile Applications.
Author: Gokul G