This morning I presented a talk at the Adobe On Air Los Angeles tour stop. My presentation was called "Lessons Learned from Developing on AIR." Although Adobe AIR has only been publicly available in beta for a short time, Project San Dimas, which is built on AIR, of course, has been in development for over a year, and both San Dimas and AIR have come a long way. Here is a summary of the talk:
San Dimas started out as a prototype, intended to show off eBay's web services and Adobe's client technology. Since web services are difficult to demonstrate visually, we often like to show applications that use our web services, to show some of the possibilities. At the same time as we were exploring this demo opportunity with Adobe, they told us about an exciting new client platform they were developing called "Apollo." Given that the plan was to show the first demos of Apollo at Adobe MAX '06, we jumped at the opportunity to develop "something cool" on Apollo, although we didn't know at the time what we would end up building.
We didn't have much time, and we hastily assembled a team from eBay and EffectiveUI (a development and design company highly recommended to us by Adobe) to work on the project. The initial team size was very small - just 3 people, and even now we have kept the team very small, expanding so far only to 7. We presented the first prototype at MAX, which was very well received. Since the team has been continually developing and designing the prototype into a full eBay desktop application, with features including search, bidding, My eBay, history, and alerts; and with a design fully customized to take advantage of the artistic freedom made possible by AIR.
Here are 5 lessons I've learned in the process of working with AIR:
Lesson 1: Start with a good foundation
While San Dimas has a radically different UI from the eBay website, it is not something that has been built totally from scratch. eBay's web services platform has been in development since 1999, and San Dimas uses those web services exclusively to connect to eBay's backend systems. We've had to make zero changes to our web services thusfar to support San Dimas. If we had, it would have put the project schedule at serious risk (and believe me, there was enough risk already as it was).
If you are starting out developing an AIR application, I recommend that you consider an SOA or web services architecture - this will ensure you don't tie yourself too closely to one type of client, whether that be browser-based, desktop, or something else.
Lesson 2: Design takes a long time
We spent 3 months developing the prototype that was shown at MAX, and of that time, 6 weeks was spent on design, before we started coding. AIR offers lots of freedom, and because of this you may find yourself having a hard time deciding on a design for your application. You could apply existing web design paradigms, but this may not lead to an optimal user experience.
Lesson 3: Betas are really useful
San Dimas has been in beta for just over a month, and in that short time we've had thousands of users sign up for the beta, and hundreds give us feedback on feature requests or bugs. Launching "beta" web sites or applications to generate early buzz is in vogue, but I've learned already through our beta that they are well worth the time and effort, assuming that you intend on actually listening to your beta users, and are prepared to change your plans if what they are telling you is a surprise. If you are planning to develop an application on AIR, I'd encourage you to get early feedback from users through a beta program.
Lesson 4: The most important AIR feature is: freedom from the design constraints of the browser
Although AIR provides lots of useful features for developing desktop applications, such as file APIs, windowing support, and a complete HTML renderer, I have found that the most important feature of AIR is that it is not a web browser. Standard browser user experience metaphors like the back button and location bar impose a set of assumptions about how web applications should work - assumptions that might work well for certain kinds of applications, but not for all. For all the magic shown by some leading AJAX-powered web applications, they still have a long way to go in terms of performance, features, and user experience.
Lesson 5: Users don't care about AIR
And that's a good thing! AIR does a very good job of getting out of the way. It has an excellent installation experience -- applications can bundle the runtime with the application, and installation can be triggered from a Flash movie in the browser, which has worked very well with San Dimas. AIR provides a very useful application update framework. And AIR applications behave like any other desktop application. These "little" things really matter, and I'm glad that Adobe has paid attention to them in AIR. One of the measure of AIR's success will if users don't realize it is even there.
Thanks to Adobe for the opportunity to share what I've learned, and thank you for creating such a great platform!
You can sign up for the San Dimas beta so you can try it out for yourself.