Previous versions of Apple’s iOS software offered a way to store data locally on mobile devices which dramatically increased the speed, accessibility and usability of mobile apps. With data stored locally on the device, it created a lightening fast interface and also made these apps usable when offline. As of iOS 5.1, Apple has reconfigured the way data is stored within the app.
What does this mean for html5 developers?
This is a major road block for web apps that are converted into mobile apps, specifically apps that use Phonegap. Apple now deems this data as temporary, meaning that app data can be deleted at anytime. There are a large number of PhoneGap apps the use this localstorage method and will be affected by this change. Many users will now loose settings and data within existing apps when upgrading to the lastest iOS version.
Apple has to review every app that it allows in the app store. This change was, more than likely, due to Apple seeing a large number of apps storing databases of information within the app. This can cause an app to be large in size but there is a size limit to this localstorage space (5MB).
Bottom line: Apple doesn’t seem to be a big fan of web apps being ported by PhoneGap. Either that or they just didn’t care or notice this update would break the way localstorage was being utilized by web apps. Building in html5 makes it easier to create apps for both iOS and Android with the same codebase. By making these changes, it is now necessary to build apps that utilize local storage in objective c (native) which in turn hinders the cross platform approach of building in html5 thus making apps more expensive to create across multiple platforms. Hopefully Apple finds a way to address this issue.
Some references on the web about this topic:
- PhoneGap response
- Apple breaks web storage in iOS 5.1, does not care about web apps? via itwriting.com