Adobe AIR is Adobe’s response to multi-platform applications that can interchangeably be ran as a Flash component. With this flexibility, Flex developers can quickly and easily produce applications that can traverse many platforms.

What are deployment and distribution?

Distribution is how you get software to your users, where deployment is HOW software is installed.
In many distribution setups, we see CDs, downloads, etc. In deployment setups, we have installers, installing it on 100,000 machines overnight, etc etc.

AIR file format

  • Key properties:
  • Zip-based package
  • Compressed to minimize size
  • Signed to prevent tampering
  • Free to create!!

Consumer Model – Simple

Applications are Distributed and Deployed via “Badges,” which are FP content running on a webpage. You can write your own, or just use the one that comes in the SDK!

Setting up the badge is simple, just host the AIR file on your server, and embed it on your website. Minor configuration for badge parameters/etc.

In-Browser API capabilities allow the browser to kick off the install via AIR, and to get the status of an application installation via the Badge. Application launch and detection requires the opt-in capabilities to get this info.

Consumer Model – Complex

Support for use cases require additional install operations (e.g., installing additional software with AIR app, or displaying custom UI during install).
Setting up a complex install requires for a sign-up for redistribution of the AIR installer. The installer allows for silent installs.

Redistribution

Complex consumer model and Enterprise models both require AIR to be redistributed and require an agreement.

Enterprise models require your own IT to figure out the deployment options. It will mostly follow suite of the complex distribution model, only a few more legal requirements for who applies for the redistribution agreement with Adobe (typically the IT department specifically).
Things to consider: Permissions to install apps (might have to be done via IT dept specifically), auto-updates in AIR apps might fail also due to permissions.

Rough Edges

  • Application updates require an uninstall/re-install
  • Side-by-side versioning of AIR is not yet supported.
  • Authenticode signing not yet supported


I’m skipping the windows specific installer specifics in regards to tying into the Microsoft Windows Installer (MSI).

Adobe AIR 2.0 preview

Native installers can be generated for any AIR application!! They MUST be used to access the NativeProcess API, and to remove the blacklist restriction for File.openWithDefaultApplication(). Also allows to package binary apps with your application, so they can be ran during install or run-time.

Downsides:

  • Can’t use updater API, can’t use the Badge process for installation. You’re kinda on your own with these, but it shouldn’t be that complex.
  • The custom native installers also don’t have the AIR runtime, which means it must be packaged separately.
  • Probably the most disappointing thing about these are that you can NOT cross compile for other platforms, it can only be compiled for the same platform you are currently developing in.
  • Windows and Mac installers have an API for downloading the AIR runtime, where-as Linux relies on the package manager in the distro you’re running.

Profiles allow for Authoring, Testing, and Deployment configurations. An application can support multiple profiles, but will only allow for certain functionality per profile.