Startlingly, the webkit-based browser on the iPhone supports the HTML 5 client-side storage standard. Alas, you can’t write properly off-line apps because there’s no local HTML/file cache on the phone you can keep files in. You could use the bookmarklet trick I suppose, but I don’t like that one – it’s nasty, and makes development annoying – you have to keep re-syncing things, it’s not terribly easy to upgrade, etc.
3.3.2. [..] No interpreted code may be downloaded and used in an Application except for code that is interpreted and run by Apple’s Published APIs and built-in interpreter(s).
There are obviously huge disadvantages to writing an app in HTML, but I’d like to try it if only as both a rapid prototying environment for local apps, and a way of giving apps that are already HTML-based some local storage and the ability to be run when away from network.
Unfortunately, I feel that I can see where this could get taken. The spirit of the SDK agreement is clearly that Apple don’t want any way of distributing applications except through the App Store. This exception is in the SDK only because you can’t have an embeddable web browser widget without saying ‘stuff the web browser does is ok’. But if this loophole actually is a loophole, I don’t see what stops me writing a front-end that can download more HTML into the local storage area.
Well, no, actually, I see
3.3.3 Without Apple’s prior written approval, an Application may not provide, unlock or enable additional features or functionality through distribution mechanisms other than the App Store.
..which might cover that one. Maybe I’ll write something like this as an experiment anyway.