As a follow-up to our post last month about iOS 5's new cache cleaning policy, I wanted to take a moment to recognize Apple's release of iOS 5.0.1 yesterday for iPhones and iPads. It looks like Apple has definitively addressed the issue, which we're quite happy about, and think this change will benefit users of our MapBox for iPad app as well as all apps on the platform.
The core of the issue was that with the release of iOS 5, which allows backup of devices to iCloud, Apple also instituted a policy of more aggressively clearing out files on the system from so-called "temporary" areas, while also putting the squeeze on developers and apps using the "non-temporary" areas to store large amounts of data.
One of our app's core features is the ability to store large and complex maps for offline use using the MBTiles format. Individual maps can run in the gigabytes of size, but while we want them to not be sporadically deleted when the system is running low on space, we also don't necessarily want users to have to fill their iCloud accounts with large backups of the maps.
iOS 5.0.1 provides a setting that can be attached to each and every file, as well as folders, allowing for exclusion from iCloud backups. Apple's documentation of the feature says:
Starting in iOS 5.0.1 a new "do not back up" file attribute has been introduced allowing developers to clearly specify which files should be backed up, which files are local caches only and subject to purge, and which files should not be backed up but should also not be purged. In addition, setting this attribute on a folder will prevent the folder and all of its contents from being backed up.
MapBox for iPad will feature a preference for this setting in the next version, in development now and due out soon.
Thanks Apple, for listening to developers in a speedy fashion and adding this functionality. We think everyone will benefit from it, not just offline map users and developers.