February 04th 2008 | Jens C Brynildsen
For some reason, many think that AIR is comparable to projector tools. In some regards it is but it's really something different. What's the differences and when should you use what tool?
I just read a blog entry by Igor costa in which he compares AIR beta 3 to the just released MDM Zinc 3. This got me thinking - is AIR really competing for the same market? There are many projector tools but comparing these to AIR is really comparing apples and oranges. A tool like Zinc is much more capable than this first version of AIR and the approach is totally different.
Some are afraid that AIR will ruin the market for third party projector tools. I don't believe it will. The buzz around AIR will make more people aware that you can actually use Flash and Flex to create applications. Another thing is the Flex adoption rate. While I have no official statistics, I'm confident that Adobe already are approaching their goal of one million Flex developers by 2010. If any of these developers need to do more than AIR offers, they'll turn to the Projector tools. So - I think AIR will will increase rather than decrease the market for this kind of tools.
I thought I'd go through and point out what the differences are between AIR and projector tools by using Zinc 3 as an example. They do share several features, so it's easy to think it's the same thing. Both Zinc and AIR deliver desktop applications. Both solutions can be authored using either Flash or Flex. Both applications support HTML & PDF display, File System access, Network Detection, Notifications, Drag and Drop and chromeless (or semitransparent) windows. So what are the differences?
AIR : Requires the Flash Player to trigger AIR installation using a HTML page or the distribution of the AIR runtime installer
Zinc: None. What is required is included in the download
This is probably the main difference. A projector file comes with everything it needs, but the user will need to download one application for each Operating System.
The AIR application is the same for all platforms, but it cannot do anything without the AIR runtime. Once the AIR runtime is installed you only need to download the application. Everything the AIR application needs is available through the runtime. This also makes it possible to send an AIR file from a Mac user to a PC user.
AIR : Distributed as application over the web
Zinc: Distributed as application (or screensaver) over the web or on physical media (CD, DVD, USB)
The web is the future and physical distribution is dying. Apple's introduction of MacBook AIR, a portable that has no optical drive, kind of proves that physical distribution is dying. Apple already makes a nice bit of it's revenue from music sales and with the new movie rental service, this will further reduce the need for physical media. This introduction also adds an interesting "AIR of confusion" as to what the word "AIR" is to consumers. Some kinds of content, such as games done in Flash, still benefit from distribution on physical media.
Though technically possible, you wouldn't try to distribute a CD-ROM or DVD based game using AIR. You COULD deliver the assets on a DVD and download the program and the runtime triggered from a HTML page. You could open this HTML page when the disc is inserted (autoplay), but the user would probably feel very "ripped off" if they did not have a web connection. In that case, they'd just bought a very expensive piece of plastic. You COULD get around this less than user friendly process by creating an installer using a professional installer building tool. This tool could both copy files and then execute the AIR installer, but this would require a lot of testing and experimentation. Then again - Adobe might deliver such a tool at some point in time. It's not a bad idea in itself but this is a key differentiator, so removing this could ruin the market for third party tools.
AIR : HTML & PDF display, File System access, Network Detection, Notifications, Application Update, Drag and Drop, Local database (SQLLite)
Zinc: HTML & PDF display, File System access, Network Detection, Notifications, Drag and Drop, database connectors (ADO, MSAccess, MySQL, SQLLite), ftp, local tcp/udp server, screen capture, hardware access (COM-port IO, system audio, CD, computer), joystick, shell commands, external media control (Windows Media, QuickTime, Real)
Both AIR and Zinc runs on your desktop and they both use the powerful Flash Player 9 (FP9). With FP9 in addition to file access, certain unique features of Zinc such as the image format conversions can also be done using AIR. You'll need to write the code for this and/or find suitable libraries, but it's fully possible.
Zinc obviously has an edge in terms of features and the overview above really says a lot, but keep in mind that AIR is not even in version 1. Adobe are focusing on only integrating features that can be fully cross-platform. The API is the same no matter the platform the application is executed on. If a feature can be made to work across platforms, you can expect Adobe to add it in a future version of the runtime. MDM has just cleaned up their API and it requires a lot of work to produce solid projectors for three platforms. This in turn slows MDM down when it comes to adding new features as they are not a 6000 employee company such as Adobe (2006). It's great to see that MDM finally quit supporting Windows 95 and other obsolete platforms and shifted focus to XP and Vista. This will make their development much easier.
The WebKit browser is part of the AIR runtime. This ensures 100% consistent display of HTML across platforms. Zinc wraps whatever the user has, so it will use IE on the PC and Safari on a Mac. This could lead to rendering issues because of browser bugs that you would not need to test for if you use AIR.
While Zinc can embed a browser and do basic stuff, it's no where near the script bridging that Adobe has put in place in AIR. The whole DOM of the browser can be manipulated from Flash and this goes both ways.
AIR : No official support
Zinc: Custom DLL and AppleScript support
AIR offers no official way to extend it, but you can pack files with your AIR application. How this can be utilized fully is uncertain at the moment, but there's some interesting community projects researching possibilities. Zinc allow you to embed/wrap custom DLL files or write AppleScripts. Using these possibilities, you can achieve virtually anything from within your application.
AIR : Full ECMA4 compliance, just like AS3
Zinc: AS2-style event syntax, despite AS3 support
AS3 has recently been suggested as the reference implementation for ECMA4. The AIR API adhere to the standard as well so if you use Flex and use the code hinting, you'll get far even if you don't know much about the APIs. MDM has improved their scripting language a lot from former versions, but events still use the AS2 syntax. I find this strange as it makes Zinc look dated to AS3 developers. This may be due to the fact that they also support Flash Player 8 and AS2, but I'd prefer that they adhere to the proper event model when doing AS3.
AIR : Sandboxed
Zinc: Full OS access
Both AIR and Zinc can destroy a computer. Zinc projectors have access to the entire machine (even some hardware) and you can read/write and execute any file. AIR can read and write, but not execute. Adobe does a good job of alerting the user when installing an AIR application. This is more than many publishers do and it should instill some trust. You cannot get away from the fact that installing software is a matter of trust. Do you trust the publisher of the software? That's what this issue boils down to since both apps potentially can cause havoc.
AIR : Free / US$249 / US$699
Zinc: US$249.99 - US$849.99
You can create AIR applications for free with no limitations. All you need is a text editor, the free compiler and SDK from Adobe. If you prefer to use a graphical tool, you can get Flex Builder for just $249 or $699 if you add charting. Flash CS3 is also $699 for a full version and odds are that if you read this on Flashmagazine, you'll have one of these already.
The Zinc Builder application is free, but the plugins that offer export to OSX and Windows cost $349.99 each and the Linux export is $299.99. MDM also offers the Zinc 3.0 Development Suite for $849.99, so you can save about $150 if you want all three platforms. MDM also offers a free personal version of Zinc Builder that has trial versions of the extensions.
The end user experience is quite different for AIR and projector tools. The download and install experience is key to the success of AIR and Adobe has done a lot of research to get this right. I think they've succeeded, but it will take quite some time for the AIR runtime to get even the distribution that the ShockWave player has and I doubt it'll ever reach numbers as high as the Flash Player unless someone creates a killer application with extreme usability so that even my mother can use it.
The AIR application comes in the form of a file with the extension ".air". This file contains all the assets required by the application such as a SWF, HTML, PDF, images and whatever the developer adds to it. AIR applications can only be opened with and run through the AIR runtime.
An AIR application can be made to install very elegantly directly from your browser. The developer creates a custom SWF file (called an AIR Badge installer). This SWF use a special command in the Flash player API that can trigger AIR (and other Adobe software) to be installed on the end users machine. This mechanism makes it possible to circumvent a lot of the current install hassles such as antivirus, security software and XP/Vista admin settings. In general, any machine that has a recent Flash Player can also get Adobe AIR.
1. The end user clicks the Badge on a web page
2. If the AIR runtime is missing, it is downloaded and installed after the user confirms the install dialogue. If the AIR runtime is already installed, this step is skipped.
3. The AIR application itself is downloaded
4. The user have to click OK on a warning dialogue. This dialogue exists to tell the user that running an AIR application is the same as running any other desktop application. It can create and delete files, so one should not install AIR applications from a non-trusted source.
5. The user selects where to install the application
6. The application starts (if selected)
If you try this process yourself you'll notice that it really flows smoothly. Alternatively, you can download a standalone AIR Installer and run it on your computer.
Just as AIR does, Zinc also packs assets together with the application file. A Zinc projector is a self-contained program. It can utilize software on the client machine, but also packs all the basic stuff that the AIR runtime offers with the application. For a Windows machine, the projector is an EXE file just as other software on the computer. On a Mac, it's an .app file like any other program.
A Zinc projector cannot be installed directly from a browser. It must be downloaded and executed. When you download a projector file, it has to abide by the policies set up by the system administrator and it will trigger every annoying warning that Windows Vista can come up with. That said - most Vista users dismiss these warnings without looking at them so it might not be much of an issue.
Virus software and firewalls may also cause problems if they are incorrectly set up so they prevent the download of executable files. In general, this is not a big problem but providing an alternate Zip'ed version of the applications is often a good idea. Many users have downloaded and installed software before, so for them the process is familiar:
1. Click the link to the correct application for your machine (Mac, PC, Linux)
2. Select where to save the file
3. Click through any required warnings
4. Start the application
I doubt that AIR will ruin the market for third party projector tools. In the short term, it may pose competition, but in the end it should expand the overall market. You'll obviously need to use a projector tools if you require features not present in AIR, but here's few pointers as to when to use which tool:
Use AIR if:
Use a projector tool like Zinc if:
There's obviously other reasons as well, so please send your arguments to me and I'll add them to this article.
UPDATE: there is now a new projector tool called Shu for AIR as well. It has the same advantages and disadvantages as Zinc, but if you do AIR development and want to ship the app as a standalone as well, it could be worth checking out.