Adobe onAIR London 2008 (Morning)

Review: onAIR London 2008 - Morning Sessions at onAIR London 2008, The Brewery in London, 52 Chiswell Street, London 10:00 to 12:15

Free stuff and breakfast - Everyone who attended got a free t-shirt and an O'Reilly Shortcut, Flex 3 Early Evaluation: Assessing Flex and Your Project Needs. Not bad swag (or schwag, as they insisted on calling it), especially when considering this is the first of these sort of things I've been to where they had free t-shirts in XXL. There was also a lot of high value (and some not so high value...) giveaways throughout the day on a raffle type system (no prizes for me, though :( ). Breakfast was tea, coffee, juice and sugary donut things to be consumed while playing with the XBox or Wii.

Keynote - Andrew Shorten presented AIR as the latest in a long line of 'disruptive innovation' from Adobe (and Macromedia), it was marketing hype but I'm sure we can let them off. He listed the key use cases for AIR applications (as opposed to web apps):

  • Applications without persistent connections
  • 'Branded' experiences
  • When desktop functionality was required
  • Local data access scenarios
  • Efficient development

There was mention of a few apps which demonstrated the above features, but not enough time to go into details.

Building your first Adobe AIR application with Adobe Flex (Mike Chambers) - This talk used FlexBuilder, the Eclipse based IDE for Adobe's Flex framework. We were shown actual code examples, a common theme throughout the day, rather than pictures of what to do and, despite my having done no Flex before, it all looked easy enough (which I'm sure was the point). There was some discussion of application signing, and Mike also mentioned two books which are being published with a Creative Commons license: Adobe AIR for JavaScript Developers Pocketguide and the ActionScript reference for RIA development.

Building your first AIR application with HTML and JavaScript (Kevin Hoyt) - After the first talk demonstrated building AIR apps with Adobe's commercial tools, this talk swung things around to show how it was just as easy to build stuff with the free SDK, a text editor and a good knowledge of standard front end web technology. He started off with a few samples, MapCache and SimpleTasks, both implemented using only HTML and Javascript. Again we were treated to live examples with real code in an editor, the key first step is to import the AIRAliases.js which gives you access to the OS integration features through references like air.File.desktopDirectory.resolvePath (resolves the file path to the user's desktop) and air.File.FileStream (the main way to read and write files). Kevin also discussed the Application and Non-Application Sandbox: in the Application Sandbox (where you have access to the AIR APIs) the features in Javascript relating to dynamic code execution are disabled for security (because you have file system access with the user's privileges); you can create a IFRAME in the Non-Application Sandbox which runs like normal JS, with eval and dynamic content creation, but with no direct access to the AIR API, then talk to your Application Sandbox through the SandboxBridge.

Leveraging HTML and JavaScript within Adobe AIR (Kevin Hoyt) - After a break we were back with Kevin for a talk on how to get the Flash and ActionScriptparts of an application to talk to the HTML and Javascript parts. This talk was mostly code rather than slides, and I present a much compressed version here from the (hopefully) salient points I scribbled down in my notes. First off, calling ActionScript from Javascript: create an external interface in your Flash file ExternalInterface.addCallback and then use document.getElementById from your Javascript to reference the Flash object and call the method directly. Also from ActionScript you can reach directly into the HTML DOM with a browser.window.document reference. From what I understand this is fairly standard for Flash and HTML without AIR being involved, what AIR adds is a greater consistency and closer integration. In an AIR app you can reach inside the Flash runtime from JS using a window.runtime.flash reference which allows you to take advantage of SWF components. Kevin demonstrated a Zip viewer in Javascript which used David Chang’s Zip utility (fully detailed on his excellent blog).

Lunch - it's my policy never to complain about a free lunch, fortunately in this case I had no desire to :) Serving staff came to us with trays of finger snacks while we were queuing for the food table, and later came around with little bowls of hot food. I had a lamb and potatoes thing. The only vaguely confusing thing was they seemed to expect me to eat gravy with a fork, but it all tasted good.

I'm going to stop here, since it's taken me over a week already and I'm only half way through the day. The morning by itself definitely deserves a 5 out of 5, if you're still wavering about whether or not to go to any of the events on the second half of the European tour I'd say it's well worth a day out. A few other folk have been a lot quicker off the mark than me - Remy Sharp and James Ford are two I've come across (you can even see me in one of the pictures in the second one).

Technorati tags for this review: