As the launch of iOS 9 fast approaches, there has been a lot of excitement around one particular feature that is now available to developers. When updating or creating apps for the new OS, developers can use app thinning to reduce the size of apps, by using some of the API’s available in iOS 9. Let’s take a closer look at what this feature is, and how it can help both developers and the users they are targeting.
How does app thinning work?
iOS 9 enables mobile app developers to decrease the size of their app on users’ mobile devices through app thinning. This involves using one or a combination of three processes, known as Slicing, On-Demand Resources and BitCode.
Nowadays, most apps developed for the iOS ecosystem are universal. In other words, a single app can be installed on all iPhones as well as iPads; there is no need to download separate apps for your smartphone/tablet. Although it’s far easier for users to simply download the app once and use it on all their devices, it does create an issue in terms of space on their device.
When an app is developed it needs to have visual and other assets, which enable it to work appropriately on each device. As the variety of iOS devices, screen sizes and capabilities grows, it means that when a universal app is downloaded it installs assets for all of these platforms.
So an app installed onto an iPhone 6 will include all the assets required for the iPhone 6, iPhone 6+ and other iPhones (if supported), as well as the resources required to run on iPads. These resources are never used on the iPhone 6, but they do take up a considerable amount of space on the user’s device.
Slicing enables mobile app developers to pack assets based on the device for which the app is being downloaded, meaning the user only installs the relevant assets. If the same user downloads the same app on another device, then assets required to run on that device will only be installed.
This makes it easy for the users to manage their storage and enjoy apps with fewer restrictions.
Apps are becoming more complex by the day. For this to happen, developers have to integrate lots of information and assets into their apps, enabling users to experience the full range of amazing features available. But the fact is that many users do not use all the features or sections of an app, which means these extra assets for unused features waste storage space on the user’s device.
Games are a good example of this; it is very unlikely that a user who has progressed to the 50th level of a game would return to play the 3rd level. But currently, apps store all of the assets and data required to run all levels of the game. In this event, it would make sense for the mobile app developer to essentially free up space on the device, by temporarily deleting assets for the first 20 or 30 levels and have them available online for the user to download when required.
Similarly, most apps come with in-app purchase options, which unlock features after purchasing them. But the assets and functions for these features are all saved on the device along with the app. Using on-demand resources mobile app developers can disable all the locked features during the installation process, and instead enable the user to download them when they purchase those features.
The final process in app thinning is bitcode. Usually, once a developer completes the development process on a mobile app, he/she uploads a compiled binary file onto iTunes connect. This enables Apple to check the app, before making it available to all the users on the App Store.
However, the introduction of bitcode means developers will no longer upload a singular binary file, but an intermediate representation of a compiled program. This will be compiled on demand when installed by the user. Compilation occurs by Apple identifying the device it is being installed onto, picking the assets required for that particular device, and compiling them into a file ready for the user to install.
This feature works along with the rest of the two processes to ensure that the size of the app is kept to the minimum.
One of the biggest advantages of this process is ensuring that 8GB and 16GB iPhones and iPads remain relevant, which is particularly important as developers and brands target emerging markets. App thinning will enable mobile app developers to continue making apps for these devices, whilst enabling users to access more apps on their devices at a time.
Did you know that using Django Model Managers can speed up development time?