I went to a session giving an overview of Adobe’s AIR platform for delivering applications that run outside of the browser. Most of it I knew already, but there were a few interesting nuggets:-
- AIR is available (though still in beta) for Windows and Mac. Linux is expected to follow “soon” (though the definition of soon is at best weak, since Linux support won’t be available until after v1.0 of AIR ships, and no date for that has yet been announced) and mobile devices (phones, presumably) still later after that. As you’d expect, it abstracts away the OS so that you don’t have to care which version of Windows you’re running on, or whether it’s a Mac rather than Windows. You get some access to native functionality – clipboard, drag and drop on to AIR windows, file system access, etc. but there’s no way to extend the functionality, and you can’t make arbitrary calls to the OS.
- There’s no sandbox. AIR apps are just like EXEs; if you don’t trust the source, don’t download the app. (Some people seemed to think that this was a problem, but it seems sensible to me; AIR apps are meant to be like EXEs, so sandboxing them wouldn’t be necessary or appropriate.
- There’s some database functionality built into the runtime, but you can’t make private spaces within the DB; all AIR apps can see the whole DB. Again, by analogy with an EXE file being able to see the whole file system, even bits of it belonging to other programs, this doesn’t seem to matter to me.
- The runtime is intended to weigh in between about 6 and 10MB.
- You can display PDF documents within the AIR environment, but PDF rendering is not built into the runtime; the user needs the Acrobat Reader on their machine as well. This is to keep the AIR runtime size down.
- Interestingly, HTML is rendered on the Flash canvas so Flash effects such as rotate or alpha transparency or blur can be applied to HTML elements, and the HTML elements remain functional post-transform.
- AIR apps can have an OS-appropriate window with controls, or no window at all and transparency, so you can do odd-shaped apps like Clippy or whatever.
- Beta 2, out today, adds support for a synchronous DB API, OS-native menus, double-click and scroll wheel support, XSLT support, etc.
Update: Today’s session enumerates a short list of advantages to AIR:-
- File system access
- Windows & chrome; no browser cruft, make your own, app-specific toolbars and menus
- Drag and drop support, into and out of
- Better copy and paste; can pass more complex objects such as a range of cells or a video clip or whatever
- Offline working
- Background processing
- Notifications; can display messages to the user better than in a browser
- Keyboard shortcuts; don’t have to worry about clashing with the browser’s shortcuts (eg. you can’t use Ctrl-B for Bold in a browser because it’s reserved for “Show bookmarks”, tab and enter already do stuff)