Product review: Adobe breathes fresh AIR into RIA
Adobe's rich Internet application toolkit lifts Flash and AJAX out of the browser and onto the desktop; debut release shines with light technical requirements and good features, though security and OS integration could go deeper
Pieces of AIR
Adobe AIR comprises several components. The SDK is a command line toolkit for packaging and deploying Web applications as AIR apps. It includes a schema template for generating the AIR manifests (which define various properties of each application including name, security certificate, and files included within the package), APIs for the framework, a service monitor, and a command line debugger that lets you do some testing without first needing to package up your app. The entire lot is available for free, and several components are open sourced under the Mozilla Public License.
The underlying application components are packed into an AIR installer file, which is little more than a zip file containing program assets, the XML manifest, and a digital certificate to verify authenticity.
The command line tools are easy enough to work with, and you can use any text editor to create an AIR app. Adobe provides plug-ins for creating AIR applications in Flash CS3 and Dreamweaver CS3, as well as third-party tools such as Aptana Studio. However, I recommend you try Adobe's new commercial development tool, the Flex Builder 3.0 IDE. Based on Eclipse, Flex Builder provides easy graphical tools for laying out GUIs, binding to servers and data sources, and generating the underlying MXML code.
AIR apps can take advantage of protocols including FTP, AMF (ActionScript Messaging Format), JSON, SOAP, and RTMP (Real Time Messaging Protocol for streaming media), and they can communicate with Adobe LiveCycle and BlazeDS servers using server-side RPC and messaging calls.
Clipboard access and drag-and-drop interaction with the file system notwhithstanding, AIR's access to native code libraries and the underlying OS could be deeper. For example, AIR lacks a USB API, and although printing is supported, printing of images is limited to raster renderings versus full vector support.
AIR'sindependence from native libraries provides a cleaner experience, but access to native code could provide not only better performance (particularly for calculation-intensive processes), but also a richer set of pathways to existing code/routines and the ability to launch local apps for specific file types.