German ex-pat and current New Zealander Kai Koenig is best known for being a blogger, ColdFusion dude and Flex guru, but in fact, he also has another area of expertise: Adobe AIR.
He’s coming to speak and run a workshop at the Edge of the Web conference in Perth in November, so I thought I’d chat to him about his thoughts on AIR.
Hi Kai, thanks for your time! You’re doing a presentation and a half day workshop on a fairly new technology from Adobe called AIR. What exactly is it, and why is it interesting to web developers?
Hey Kay, thanks for taking the time to interview me *g*.
Ok, let’s maybe start with noting that AIR is not new anymore – it was released by Adobe in February 08 and was floating around in public alpha and beta releases under the code name Apollo for quite a while before that.
Basically AIR is a desktop runtime environment for applications. Think about concepts such as Java and their Java Runtime Environments (JRE) or Microsoft with the .NET runtime on Windows machines (or the Mono project on Linux/OSX) and you’ll come pretty close to the general idea of AIR – it allows you to execute platform-independent code in a runtime environment on your machine.
Ok, I got that – but what’s the point of having another runtime environment then? What does make AIR different and special?
AIR is different for a few reasons. The most important of all – it’s a runtime environment for the desktop that leverages web technology. That basically means that you as a web developer will be able to use your skills in building web applications to build applications that run on the desktop of your user, you can interact with the desktop and therefore bridge into a totally new environment that the typical web developer could hardly reach before. And you would neither have to learn Java nor any .NET platform language to do so – not that I would not encourage you to learn new languages!
AIR really consists of 2 built-in runtimes by having a Flash Player-based part and a Webkit-based part. Webkit is the core HTML rendering engine of Safari and widely used in other browsers, for instance in Nokia mobile phones. It’s actually cool because that means that it doesn’t matter if you’re a Flash, Flex or HTML/JS developer – you can pretty much right away build applications for the AIR runtime and re-use the skills you have.
The two runtimes can even interact with each other. So – it’s possible to build and deploy a Flex application in AIR that uses the HTML engine to render full-blown HTML or vice-verse built a HTML application with JS that uses Flash and Flex. And the best of all is probably that your AIR application will run and behave exactly the same on any platform that the runtime is supported on.
Typical scenarios of interaction with the external world – the user’s desktop – are access to the file system, a full network stack, system notifications, access to the chrome, copy&paste and clipboard data conversion and imho best of all – a local SQLite database.
That sounds very interesting and it appears that it’s a great opportunity for web developers to bring their applications to the desktop by using AIR. But with all those ways to interact with the user’s machine – what about security? And how do you get AIR and an AIR application to your machine anyway?
There are a few things to be aware of when talking about the delivery of AIR applications and also about security. It’s important to think of an AIR application as any other application. It basically has all the access rights to your system that you provide it with – like any other application on your machine. I would strongly advise everyone to avoid using your machine with administrative or root privileges and install applications – doesn’t matter if those are Java, AIR, native Windows etc. – from a source you don’t know – or even worse – you’ve just downloaded from “somewhere” on the net.
AIR supports the developer in creating a level of trust by allowing to sign applications with a certificate from a trusted third party, such as Thawte. The user will therefore know who the developer of a particular application was and could decide if to trust that person or organization.
The AIR runtime is available from Adobe for free. It’s not open source though as the Flex SDK is. Having the AIR runtime on your machine, you’d be able to run and install any AIR application (they come as .air files).
Then there’s the AIR SDK. The SDK comprises a bunch of class libraries and command-line tools to actually build AIR applications. The SDK is available for free as well.
That sounds awesome, but in the real world, are people actually adopting all this cool stuff? Are there applications in the business, corporate and government arenas?
Yes, they are indeed. Obviously as with any new technology there’s an experimentation and adoption phase. For AIR that meant that I’ve probably seen 5 different Twitter desktop clients with the first few weeks after release, which becomes tiring after a while :)
One of the great benefits of AIR applications is that they seamlessly tie into the net as well as into your desktop. A large use case of AIR is therefore to bridge a gap between online services and the desktop and offline or occasionally connected client world. There are very stunning applications out there to integrate with services like Flickr, Digg and various blog systems.
Overseas banks and stockbrokers have started to provide their clients with AIR applications to provide a comfortable access to their portfolio data. I’ve heard about a large airline in the southern hemisphere going to release an AIR application for their frequent flyers for booking, visual trip planning etc from their desktop and there are also government organizations looking into leveraging AIR as a new way to deploy internal applications to the desktops of their employees.
So what are you going to cover in your workshop? Do attendees need any particular skills? Should they bring their laptops?
Well, the workshop is going to be a technical workshop after all. That doesn’t mean that attendees have to bring laptops, but it will comprise a bunch of hands-on tutorials and experiments that I’d say are just way more fun if people can actually plan with the files themselves and create a small application on their own.
Attendees do obviously not need to know much about AIR. What they need though would be an understanding of web technologies and programming concepts, but a developer who builds HTML-based sites and applications with AJAX would be as able to follow as a Flex- or Flash-developer would. It won’t even be a problem if you’ve never build a web application but you’re working on building desktop apps with Java, C#, C++ or Cocoa on the Mac instead.
After covering the basics, we’ll pretty much jump into some of the more interesting and “special” APIs such as File System access or the SQLite API. We’ll talk about various deployment options, security, certificates and also tooling – most people would prefer to work in some sort of an IDE instead of hacking along on the command line.
One important remark re the required software – I’ll have a few USB keys with the AIR SDK and runtime for the most common platforms and a few other things that attendees could use as a starter kit at the beginning of the workshop.
If you’re an existing Flex developer looking into getting into AIR, I’d recommend using and having Flex Builder 3 installed, people coming from the HTML/JS side of things could have a look into using Aptana as their IDE of choice.
Be aware that I’m an Apple fanboy running OS X, so there’s a good chance that I have installers for various IDEs for OS X with me, but I might not be able to support you with more than the basic starter kit on Windows or Linux :)
Great! Thanks again Kai… Look forward to seeing you at “The Edge” :)
Thanks Kay, look forward to seeing you again soon and meeting all the attendees over there in Perth!