Adobe's second AIR defies Jobs' Flash iPhobia
Evolutionary RIA step for PC, Linux - and Mac
Review Thanks to Steve Jobs, attention on Adobe Systems' Flash this year has mostly been on mobile a fact Adobe helped compound by recently releasing its AIR runtime - based on Flash - for Android partners.
Adobe's progress with AIR for mobile has been slow, while Apple's iPhone and iPad Flash ban has damaged Adobe's cross-platform strategy as Apple's App Store dominates mobile development.
But how about AIR on the desktop - remember that? Adobe has now released AIR 2.0 with new features including limited native code interop.
Just to remind you, AIR is essentially the Flash player combined with WebKit for HTML applications, SQLite for local database support, and extensions to the ActionScript 3.0 library that give some access to the local system. It runs on Windows, Linux and - oh, yeah - Mac.
AIR 2.0 is based on Flash Player 10.1, with new features including global error handling and performance optimizations. In addition, there's multi-touch and gesture support, the ability to open documents with the default application and to detect removable storage media, access to microphone data with local audio encoding, nested transactions in SQLite, the ability to launch and communicate with local executables, and the ability to drag files from a remote server to the desktop and have them downloaded in the background.
One line of code opens a document in the default application
The new file.openWithDefaultApplication() method is a small feature with big benefits. AIR is sometimes used for financial applications, for example, and the ability to open a set of figures in Excel will be welcome.
Native code interop is valuable but has annoyances. Clearly it is better avoided, but there are times when a dash of native code is what it takes to make an app viable or implement a much-requested feature. You can now do this, but communication is restricted to standard input/output, which will normally mean compiling an intermediate executable.
Further, if your app uses this feature it cannot be deployed and updated in the normal AIR fashion, but needs a native installer. Silverlight's COM interop is easier to use, though not fully comparable since it is Windows-only.
Networking is better in AIR 2.0. A new ServerSocket class lets you build a TCP server in AIR. There's also support for secure sockets, IPv6, DNS resolution, and the ability to search for network interfaces and bind to one that you select.