(P)review There was a bit of a buzz in the air on Monday when Adobe rolled out the first public alpha release of its Apollo desktop internet application client – along with a whole truckload of developer tools and documentation.
Apollo is an interesting proposition, a platform that mixes Flash (though you do need to use code that's written to use ActionScript 3.0 and the new AVM 2.0 virtual machine), PDF, and HTML. The Apollo runtime is a host for .air applications and is built on code that mixes Adobe's Acrobat Reader, the Flash 9 Player, and a standards-compliant HTML rendering engine based on Apple's WebKit.
The main difference between the Apollo runtime and all these components running in, say, WebKit browsers like Safari or Swift, is that there's no browser window and that the application gets direct access to your hard disk. It can read and write files, as well as using persistent storage. It even gets access to some of your hardware – so you can use Apollo to work with images from a web cam. In fact, there's already a demonstration application that mimics Apple's Photo Booth webcam tool.
So what's the developer experience like?
The good news is that Adobe has learnt the lesson of Macromedia's Central, and has given developers several different routes to building applications – without locking you into someone else's business model.
The first part of the good news is that Adobe has sensibly chosen to build its development platform on top of its existing Flex Builder. Flex turned Flash from a timeline driven animation tool into a developer friendly platform, where you could write as much code as you wanted. It's not surprising that Apollo goes down the same route – after all, this is a desktop application platform, albeit one for building internet-connected applications. Like Flex, Apollo also has a handy standalone compiler so you don't need the full Flex Builder to build Apollo applications – though you won't have access to Flex Builder's graphical design tools. There's another advantage to using Flex Builder with Apollo, as it gives you much needed debugging and trace tools.
Neither Flex Builder, nor for some reason the Flex updater, are available through the Eclipse IDE's built-in update tool. Still, we have web browsers; and 250MB of updaters and installers later, I've got an Apollo development environment up and running.
Flex Builder now lets me create an Apollo project, and I can use the existing Flex controls and a set of new Apollo controls to build my Apollo application. There aren't many Apollo-specific controls yet, and the development kit mainly focuses on file system tools, as well as providing an HTML rendering object.