Update on my AIR Applications and Libraries

The most important part of my job is writing AIR applications, and I’ve written quite a few. In addition to applications, my team and I have written a great deal of reusable ActionScript library code (Amazon S3 APIs, Exchange APIs, etc.). Everything I’ve written is completely free and open source.

The problem is that I haven’t done a very good job in keeping these applications and libraries synchronized with the the publicly available version of AIR. It’s not that I’m lagging behind, though. In fact, I have the opposite problem: most of this code has been updated to work with the the latest internal versions of AIR so that I can keep banging on, testing, and exercising the latest and greatest runtime.

I just wanted to let everyone know that I will be releasing all my apps the day we release AIR 1.0. If you can’t wait that long, the source code is all available here in Google Code. In theory, all of the libraries should work with the public AIR beta (beta 3), and the applications should all work, as well, as long as the application descriptor’s namespace is set to 1.0.M6 rather than 1.0. Anything that doesn’t work, or any bugs that you find, will be fixed in the final 1.0 release.

Below is a list of almost everything I’ve written that’s worth releasing (I’ve written dozens of test applications that will never see the light of day).


  • Apprise: A simple but powerful RSS aggregator.
  • Lineup: A application for viewing your Exchange calendar, and receiving meeting notifications.
  • PixelPerfect: Measure things on your screen in pixels.
  • S3E: Easily manage your Amazon S3 objects and buckets.
  • SPF (Screen Protection Factor): A multi-monitor screen saver.
  • ScreenBoard: Draw on your screen during presentations.
  • HTMLScout: A tool for inspecting the DOM of an HTML page.
  • Timeslide: A simple but useful countdown timer with good visual feedback.


  • as3corelib: The corelib project is an ActionScript 3 Library that contains a number of classes and utilities for working with ActionScript 3.
  • as3fedexlib: A wrapper on top of some of the FedEx XML APIs.
  • as3syndicationlib: Use the syndication library to parse Atom and all versions of RSS easily. This library hides the differences between the formats so you can parse any type of feed without having to know what kind of feed it is.
  • as3awss3lib: This is an AS3 library for accessing Amazon’s S3 service.
  • as3notificationlib: This project makes it easy to add cross-platform notifications to your AIR application. It handles "native system notifications" like the dock icon bouncing and the taskbar icon flashing, and it allows you to easily create alert "pop-ups".
  • as3exchangelib: This is an ActionScript 3 library for talking to Exchange servers. (Currently only supports retrieving meeting information.)
  • as3preferenceslib: An AIR library for storing preferences. It worries about persistence and even encryption for you.
  • as3nativealertlib: This project creates Flex-like alerts, but they are native windows so they can appear outside the bounds of your application.

The source code for all these applications and libraries is available here. You will need to use subversion to download the source.

14 Responses to Update on my AIR Applications and Libraries

  1. Aaron says:

    Great resources, I can see where several of these will be handy in my current AIR apps. Any tips on actually using the SPF app as a screensaver? Just curious, anyhow thanks very much.

  2. Max says:

    These are great, I want to try some of them out but there doesn’t appear to be compiled versions for many of them – the adobe labs samples seem to have changed…? I just can’t face downloading and setting up Flex, SVN and the Air SDK right now lol.

  3. Christian Cantrell says:

    Max,I’ll release compiled versions (with simple installers) the day AIR 1.0 launches.Christian

  4. Max says:

    Thanks Christian, this is a great resource and when I get a minute I’ll be investigating – much appreciated 🙂

  5. Chris says:

    Christian,Thanks you for all the work. I’m hoping you can give me a quick pointer, as I’ve literally been trying to solve this problem all day. While I’ve learned a lot in the process, so it has been time well spent, I’ve still not fixed the problem.I am trying to work with your S3 code. The problem is that the compiler see the uploadUnencoded method of File as undefined. In the documentation, I can clearly see it is a method of FileReference. I’m using the air-config.xml.Any pointers?Many thanks,Chris

  6. James says:

    Looks useful – just curious though – are the AS3 libraries specific to AS3 or are they specific to the features of AIR?It looks like they might be a mix?

  7. Ian McDonald says:

    Hi Christian,Thanks for all that. I’m using your S3 library (and other code), and it’s opened up a great wealth of possibilities with AIR. I’m looking to do a bit of refactoring it a bit to facilitate integrating it into a queuing framework (itself a part of larger open source framework). Are you interested in discussing community contributions?Best Regards,Ian McDonaldSubaltern Productions

  8. Per Alta says:

    These look enticing but I simply cannot seem to make them work. I’ve downloaded HTMLScout version “v1” and Apprise version “1” from Adobe’s AIR samples, and I’ve got AIR 1.0.4880 installed on Windows. The sample apps start up but they don’t do anything. (Apprise goes so far as to produce “Network error: Error #2032” but that’s all.) Is this a mismatch of apps to AIR version? I am admittedly a complete beginner with this stuff. If I could get these working they would be fabulously instructive!Thanks,Per

  9. Does as3notificationlib work with Javascript AIR apps? If it does, how might I go about using it? It looks like Jonathan Snook might be using it in his Snitter app, but there’s only a SWF in his source and so I’ve no clue what’s actually in it.Any pointers on getting this working with HTML/JS apps?

  10. Hassan says:

    Hi Christian,I’ve been playing with your s3e flex app. It works fine :)However, the code in SVN references a MimeTypeMap (from corelib) which doesn’t seem to exist in the latest corelib codebase(thru SVN). Maybe I’m missing out something. Anyway, I commented that out, and just using plain application/octet-stream.I’m basically a Java programmer. So the notion of sending an upload request to a file object seems kind of weird to me (objectFile.uploadUnencoded(req) in saveObject method of AWSS3). Shouldn’t it be more like an I/O Channel that should push the file-bits?Anyway, just dropped by to say Thanks!

  11. Hassan,I just checked to make sure the MimeTypeMap is in SVN, and it is. It’s available from here:http://code.google.com/p/as3corelib/source/browse/trunk/src/com/adobe/net/MimeTypeMap.asThanks,Christian

  12. Hassan says:

    Thanks Christian, I was able to retrieve that file.

  13. Jamie says:

    Hi, Christian.First, thanks for all your contributions to the community. These libraries are a huge help to someone just getting started with Flex.I’m having trouble getting the as3awss3lib to compile. I’ve filed a bug at Google Code herehttp://code.google.com/p/as3awss3lib/issues/detail?id=7Could you take a look and let me know what I’m doing wrong? I’ve tried everything I can think of and can’t seem to get around it.Thanks,Jamie

  14. Ponle Salu says:

    Can you please help?There is no file to download at this address :http://code.google.com/p/as3corelibChristian says: Use SVN. There are no downloadable zip files.