I’m like a dog with two tails, having just converted a small web application created in Flex into a desktop application in two minutes flat. This app tracks income from www.passyourtheory.co.uk, and its code used to be embedded as an SWF file within an HTML page – to update the running total, I’d launch my browser, select the tracker from a menu and the date range I wanted to total. Now I just double-click a Desktop icon and the application launches its own window, no browser required. It would be relatively trivial to alter this app to automatically connect to the database, retrieve today’s running total and display a notification whenever it changes, alerting me only when necessary. I’ve also converted another app that offers searches of our client database from the desktop to remove the need for a browser. This blissful state was achieved thanks to the new alpha release of Adobe’s Apollo (http://labs.adobe.com/technologies/apollo), which lets you deploy web applications onto the desktop. When I first heard of Apollo, my reaction was “why?”, which I understand is shared by many people; however, the more I use it the greater I feel its potential impact might be.

Apollo puts a wrapper around your web application that lets it execute outside of a web browser, display in its own customisable window and gain access to the local PC’s file system. To run Apollo applications, the end user must install a runtime package similar to the .NET Framework (although a fraction of its size). This runtime is available for Mac OS X, as well as Windows XP or later, so a single Apollo executable can run on both platforms and – when version 1 is released – on Linux too, without any changes whatsoever. Apollo is a layer between the application and the underlying OS, so the code itself is completely platform independent.
Let’s just stop for a moment to compare this against current cross-platform desktop development tools. The two I’m most familiar with are Director and RealBasic, both of which make me package my application separately for each supported OS – this means every change requires recompiling the app three times. Apollo does away with that, requiring just a single package for all compatible OSes. Very neat. Adobe has ambitious plans to support just about all platforms that can run Flash Player 9. This requirement for version 9 of Flash is certainly a limitation at the moment, especially with regards to mobile devices, but in the medium term Apollo has the potential to become a credible framework for mobile platforms too.
To develop an Apollo application, you need to install the Apollo runtime and either the plug-in for Flex Builder or the Apollo SDK, which comes with a couple of command-line compiler/packagers. The Apollo runtime and SDK are both free, so there’s no additional cost involved in gaining access to these extra features. In Flex Builder, “Apollo Project” is added to the list of project types and the process is similar to creating a Flex project.
Crucially for the widespread adoption of this technology, the Apollo wrapper also supports HTML, making it possible to create desktop applications using HTML with JavaScript to add functionality and CSS for look and feel – indeed, Adobe takes great pains to emphasise that HTML/JavaScript is supported to exactly the same degree as in ActionScript 3. The greatest benefit comes from mixing technologies, as Apollo adds an HTML viewer and several file system objects to Flex. It’s perfectly possible to have the Apollo HTML viewer render a web page and for ActionScript to interact with the JavaScript on that page, even to pass ActionScript objects by reference to JavaScript. You could, for example, pass an ActionScript sound object to JavaScript and have it controlled from within the embedded web page.
Disclaimer: Some pages on this site may include an affiliate link. This does not effect our editorial in any way.