Jun 022011
 

Over the last couple of days I’ve been busy implementing Tetragon’s own UpdateManager, a new updating mechanism based on the standard AIR ApplicationUpdater but with less fat and extra spice. After days of overhauling and debugging the default AIR Application Updater (which under the hood is – to make an understatement – quite a mess).

The updater applies only to desktop builds of Tetragon and behaves slightly different than the default AIR updater: When the application is launched it checks if an update is available on a server and if no update is found (or no connection could be established) the application carries on without further interference. The check happens only once anytime the application is started. If an update is available it’ll show the updater dialog with that the user can download and install the update file or skip the update until next launch. If the updater is skipped, it is removed from memory and cleans up all the resources it utilized (unlike the default AIR Application Updater *cough*).

On top of that a completely new updater UI has been added which is much lighter on memory consumption than the default (Flex-based) one. And with that another advantage compared to the default Updater API is that while the updater is opened, the application will not continue to move on. Only after the user decided to skip (or postpone) the update, the execution moves onwards, opens the splash screen or whatever happens next in your application. This was virtually impossible to do with the default AIR Updater UI since there was no way to get an event from it for when the user clicked a button so with the default UI the application would merrily move onwards no matter whether the updater UI dialog is open or not. Quite annoying to say the least but thanks to the new Tetragon updater this is history.

There is still one bug I’m currently fighting with which prevents the AIR installer to install a downloaded update file. Sounds like a show stopper and it actually is. If you have any hint what could be wrong I’d love to hear about it (see forum thread here).