Custom Installer For Adobe AIR Applications

I need a custom installer for an AIR application i’m currently developing. That’s because my AIR app needs additional functionality that the AIR runtime doesn’t provide (specifically: detecting USB storage devices, act as a TCP socket server, talk to Last.fm scrobbler plugins). For that purpose i wrote a local RPC socket server gateway in C (one for Mac OS X and one for Windows) which always runs once the user logs in to her OS. The AIR application can then call methods on that local gateway, or receive events.

The problem is that the user needs to install the RPC server before she installs the actual AIR application. The install process should be seamless (one installer installs RPC server, AIR runtime if needed, and the application itself in one go) and the installer should be as small as possible. Currently there is no info available from Adobe on how to write custom installers that automatically download/install the AIR runtime if needed (is there?).

Artemis is another project aiming at extending AIR using a local socket server, but it seems that the project has been shut down because of the reasons stated above.

So i have been pulling out my hair lately on how to solve that problem.

I think i found a feasible solution. I am not sure because i haven’t tested all this, but i wanted to throw it online for discussion. The drawback is that the user needs to install your application with a OS native custom installer.

First you write standard installers for both Mac OS X and Windows, that install the local socket server either as a service/daemon or as an agent so that the server always starts at system launch or user login. Nothing special here yet.

The trick would be to write a simple SWHX application that basically implements the code included with the AIR Installer badge. That helper application can then be included with the installer, which executes it after the local socket server has been installed.

As i said i haven’t tested this yet (will do soonish), but this should work, no?

The question remains why i don’t just use SWHX for the main app and screw AIR alltogether.

4 thoughts on “Custom Installer For Adobe AIR Applications

  1. It looks like i have two choices beyond AIR: Zinc and SWHX.

    Zinc: First of all i heard not so good things about stability and support, and it seems on Macs i can only use shell scripts to extend my application. Also i don’t think a Linux version is even planned. I don’t know if Zinc the right solution for my needs.

    SWHX: Big plus: open source, all three major platforms supported. However i am under deadline pressure, and i don’t know how much functionality comes out of the box – i probably have to code a lot myself, and i’m unsure if i’ll make it in time.

    AIR: Comes with very nice features and an integrated API, covering a lot out of the box. Is available for Mac and Windows, Linux version coming early 2008. Drawback: Doesn’t allow for extension at all, and i need one or two features that are not supported.

    Based on this, i think i prefer to develop on top of AIR at this point.

  2. SWHX (or anything opensource) would be good. Having extensions or custom installers are important. You have listed down an important use-case (USB communication). I can imagine many different type of applications which can communicate with different devices connected over USB, atleast my phone (over bluetooth or cable)…

    It would be great if AIR can have API for those things, so that we (developers) are not forced to write socket-servers and take care of installation etc..

    Would you be sharing the code sometime? I would love to look at it..

    Thanks

    -abdul

  3. Abdul, agreed with the API. It sucks that AIR is not extensible in any way.

    The whole application will be released under GPL, probably end of this year or beginning of next year.

Comments are closed.