Frost - Ajax Library for constrained browsers
01 Apr 2007
As a first public result in my efforts to research web techologies for mobile devices I created the Frost Ajax Library and made it available as open source.
According to past notes "The Frost Ajax library is a tool for Ajax development on constrained browsers, such as micro browsers on mobile phones or gaming consoles. It is intended to abstract the use of either the XMLHttpRequest object (XHR) or an equivalent ActiveX control and therefore make Ajax development on mobile phones or other constrained devices easier. The goal with Frost is to provide the community with a library that can help to implement Mobile Ajax applications and Mobile Widgets."
Challenge
My goal with Frost was to provide the community with a library that can help to implement Ajax-powered applications and Mobile Widgets on as many devices as possible.
Frost was a simple abstraction layer to do just this simple thing: get something from server and put it somewhere on the page. jQuery and other libs did this too, but not for as many low-end browsers as Frost did and they did a lot more so they were huge in comparison. Since Frost was mobile-targeted I had to deal with latencies and flaky networks, so I built in a mechanism to detect if a connection was dead or just slow and handled reconnects and timeouts.
I created a server component (PHP) that detected the user agent detection and basically stripped out anything in the JS code that was not used by this browser. To decide which browser was supported I did a lot of testing using a special test suite and memorizing the results. The server component also did a bit of compression, all to achieve the smallest footprint possible.
Results
The library is not available anymore but it is still being used by thousands of players every day in a mobile roulette game we created at WMG.
Daniel Applequist kindly invited me to write a position paper and attend the W3C/OpenAjax Alliance Workshop on Mobile Ajax (full report) in Mountain View in 2007. So I happened to sit in a panel with people from AOL, NTT Docomo and Google with celebrities like Douglas Crockford in the crowd. I also met Alex Russell and we spoke about dojo and SitePen.
Some other results
- I connected to Luca Passani and many of my tests were later incorporated into WURFL
- Brian LeRoux got in touch and asked me to contribute to xui
- I spoke at Mobile Web Americas in Orlando in October 2007
- Frost was mentioned in Germany's c't magazine (PDF)
- I wrote a article for dev.opera.com about Mobile Ajax and Frost
- There's a presentation about Frost on slideshare
Learnings
Open source projects rock, but you need to invest tons of time when you start one yourself. It's not like you release something and people will happily join you and contribute. As with any other product you need to build something of value and clearly communicate the message to your customers/users/contributors. With open source you also need to make contribution as easy as possible and provide a simple means for extending the existing version.
On the rewards side you get in contact with many new people, get a chance to speak at conferences (and therefore attend for free), you get free press by people blogging about your project and above all you have the chance to create something actually meaningful for others.