Just now I noticed a Twitter discussion on packaged web apps and their purpose. The same question was asked during the Mobilism panel, and I still regret not speaking up and explaining. So here it is.
The point of a packaged web app is to allow for its peer-to-peer transfer from device to device.
A user has a nice web app and proudly shows it off to friends. They also want it, so the user opens a Bluetooth connection (or NFC or whatever) and just sends it to his friends’ devices. They tap it, it installs itself, and they can use the app straight away.
This is only possible when the web app is self-contained; i.e. contains all necessary assets for bare-bones functioning. (Extra data, such as purchased levels for a game or articles from a news site, or login data, are not transferred and the new owner will have to arrange for this for himself.)
This is not a far-future pie-in-the-sky story I made up for the sake of the discussion. I’ve done it. Four years ago. It blew my mind.
I was at Vodafone working on tests for the W3C Widget Manager they and Opera were creating for Symbian phones. One day I went through the specs of a Windows Mobile phone, and saw it supported W3C Widgets, too. Time for a little test.
I opened a Bluetooth connection from the Symbian phone to the Windows Mobile one, sent over a test widget, activated it on Windows Mobile, and lo and behold: it worked. I had witnessed the future of the web.
Well, OK, it didn’t quite work. It turned out one single XML attribute in the manifest file was required by IE on Windows Mobile and forbidden by Opera in the Widget Manager. I changed the manifest file, again transferred the widget, and now it truly worked. There was no fundamental problem; just a browser compatibility one.
This points to one important requirement for transferable self-contained web apps: all implementing platforms must be very liberal in what they accept in the manifest file, and just ignore any XML (or JSON or whatever) they do not understand. Back four years ago Opera was in the wrong.
Unfortunately there are still security issues to be solved (how do you know your new app isn’t going to steal your address book?), so the technology is not ready for prime time yet. On the other hand, nothing has been done for four years.
The old W3C Widget format has disappeared, and although many platforms are trying something similar, I have not yet found a true successor that is liberal in what it accepts in the manifest file and allows for direct transfer. Maybe that’s because I haven’t paid enough attention, but I sure didn’t hear anything about peer-to-peer transfers outside my own blog posts and presentations.
Anyway, I hope the point of packaged web apps is now clear to you.
If you like this blog, why not donate a little bit of money to help me pay my bills?