How many times has the following message flashed on your iPhone and you have felt like someone has put a rope around you and you will have wiggle out of it?
STORAGE ALMOST FULL: You can manage your storage in Settings.
And you are left grumbling or squirming at the screen. Life can be tough indeed and cache makes it tougher.
For those wanting to understand this better, here is a practical example which many have to deal with. For instance, you have an iPhone with 16GB of internal space where 4GB is already reserved for the operating software and the plethora of iOS apps. Now with the limited space at hand you have to manage your documents, photographs, videos and when you run out of space your iPhone won’t allow you to snap pictures or record videos either. All this leads to disappointing space constraints.
This problem can be tackled at the mobile app development stage itself because while much can’t be done about the storage space taken up by the OS, the space taken by apps can be tweaked if the mobile app developer keeps the app lightweight with the following ways:
Understanding ‘App Thinning’
Apple’s App Distribution Guide explains app thinning as:
The store and operating system optimize the installation of iOS (in this case), tvOS, and watchOS apps by tailoring app delivery to the capabilities of the user’s particular device, with minimal footprint. This optimization, called APP THINNING, lets you create apps that use the most device features, occupy minimum disk space, and accommodate future updates that can be applied by Apple.
In other words, the breaking down of code into series of code to be employed by an iOS app developers to set the segments of the codes for the user to utilize in bits as required.
Now the three components of app thinning which leave more space for other apps, content and bring about an overall better app experience are:
It is the process of creating and delivering variants of the app bundle for different types of target devices. A variant contains only the kind of architecture and resources that are needed for the target device. App developers continue to develop and upload full versions of their apps to iTunes Connect. The store will create and deliver different variants based on the devices a respective iPhone supports. Image resources are sliced as per their resolution and device family. Graphics Processing Units resources are sliced in line with their device capabilities. When the user installs an app from the App Store, an adaptation for the user’s device is downloaded and installed.
Intermediate representation of a compiled program is called a bitcode. The apps that are uploaded to iTunes Connect (app record) that contain bitcode will be compiled and linked on the store. Including bitcode will allow Apple to re-optimize an app’s binary in the future without the need for the app developer to submit a new version of the app to the store. So the developers can repeat-optimize the iOS app code without submitting a new variant every time.
On-demand resources are those app contents that are hosted separately from the complete app bundle on the app store for download.
Resources such as images and sounds are hosted by the store on Apple servers and the downloads are managed for you. An iPhone app developers needs to tag every resource when building the app with keywords and request in groups. These resources enable faster downloads and lead to smaller app sizes, giving an improved first-time launch experience.
These resources run in the background in a transparent manner without any interference, providing the needed features as required while the user goes about exploring the iOS app.On carrying out the above functions, the end user will face the dilemma of deleting their dear apps to create space a lot less frequently.