How do you make offline web apps?
I’m looking into implementing offline support for one of my webapps and came across this beast of engineering:
Joyent Slingshot allows developers to deploy Rails applications that work the same online and offline (with synchronization) and with drag into and out of the application just like a standard desktop application.
Works on Mac and windows, and the framework itself will be released under the GPL next month.
From its description it sounds amazing. The first thing I asked is “how are they doing this?” Reading a bit further though, I found that the actual user experience turns out to be clunky. You need to somehow get the Joyent client (when do you ask your user to download it?) and then, when offline, they’ll need to launch the Slingshot application from their desktop separately (which is a stripped-down web browser shell). Then they can use your app.
This kind of user experience might be acceptable for a corporate intranet, but not for the population at large. Kudos to Joyent however for making the development experience so seamless for Rails developers. It looks like you can get rich drag and drop integration into your Rails app very easily, albeit with the caveats mentioned above.
Other solutions for offline storage and access are Adobe’s upcoming Apollo framework (Scrybe uses it), and Microsoft’s recently released Silverlight (a friend of mine is a developer for it).
I’ll post my findings when I decide on the best approach.
I think that you know which one I’m going to recommend, although I don’t think that we’re exactly what you’re looking for.
Said by Caleb May 10, 2007 at about 7:24 pm
A few things:
First, you could try Dojo Offline Toolkit.
Zimbra either does or will have (I can’t remember which) offline access. You could browse their source.
Just wait for Firefox 3.0 to come out and require users to use it
Said by Andrew May 13, 2007 at about 7:47 am
My 2 cents also for Dojo Offline, though i’m also checking out the rest frameworks you’ve mentioned. The problem is (as you said) that both Apollo and Slingshot use an external browser to do the work which is not what i have in mind. I haven’t yet checked SilveLight (if it works the same way) but I hope it will not
P.S.: Another way for providing persistent storage for the browser (which is one part of the whole “offline support”) is using Java DB as Zimbra did.
Said by Nikos D May 23, 2007 at about 5:17 am