Loose notes from SXSW 2008 panel on Adobe Air, Taking it to the Desktop.
In October 2006, I attended an Adobe focus group for what was then code-named Apollo, which promised to let us easily create desktop software out of HTML + JavaScript + Flash web apps. Fascinating technology, but I had a hard time wrapping my mind around its potential. With software in general moving towards the web, who out there wants to move things the other direction? I thought the biggest market would be on cell phones. Now, 18 months later, Apollo has become AIR and the software has become more polished. But the strategy is still the same, and I’m still at a loss to come up with a compelling business case for the product.
Anyway, this session helped put a few more of the pieces together mentally. Still not convinced it’s going to become a big hit though.
Traditional desktop envs: .NET (Win) Cocoa (mac) c/c++ (linux) Air is not these things Air runs identically on all of these. What kind of people are suited for AIR development? Both designers and developers. AIR technology stack HTML-based Flash-based Either side can include the other. Adobe AIR API. If you know Actionscript 3 you now have additional APIs (drag and drop, interact with filesystem, etc.) Full network detection Full read/write access to hard drive Native file dialogs Save Select Select multiple Directory Drag and drop clipboard System level drag and drop AIR to AIR AIR to OS OS to AIR Database support SQL Lite (same as Google Gears and what's in all phones) Zero setup Service monitoring Full online/offline detection API (unplug your network cable and AIR knows; does the right thing) Monitor network interface changes Mnitor services Support for multiple service types Custom window chrome shapes, alpha / transparency Multi-window NativeMenus Drag and drop with OS System tray / Dock System notifications Custom filetypes Handle file associations
….
TOOLS:
Same as tools you use in-browser. Either continue to use Flash or Flex or Dreamweaver. AIR SDK is technically free – you could use a plain text editor and none of the Adobe tools.
Flash Player 9 is native (of course).
ActionScript 3 only.
h.264 video support
Additional AIR APIs for desktop-specific stuff.
You can use Javascript to call APIs directly.
Benefits of using Flash - Built-in extension to create AIR apps in Flash - Flash has better video integration than Flex does - Flex doesn't currently have any design tools (but Thermo will address that need - 3rd party) - Potentially faster since you don't have to use Flex framework Benefits of using Flex - App layout - panels, etc. (this panel should stay docked right in my app) - Data binding - bind data to UI controls. - AS3 editor - the one inside Flash is pretty horrible; the one in Flex is the best - Component set is richer inside Flex (Flash people will create their own from scratch) Benefits of building in HTML - You don't have to learn Flash/Flex - Use existing HTML code bases / web apps - Not tied to Adobe apps (use TextMate if you like) - You can still access the whole AIR API from javascript
Possible to build windows with OS chrome, custom chrome, pre-packaged chrome, or no chrome at all. Also support for non-rectangular windows.
Off-line caching – come back to a video site over and over again and you won’t be hitting the server for vids you’ve watched before.
DEMOS
Nick.com demo – lets users drag puzzle pieces from the actual web site to the AIR app, and it collects them for you; then lets you assemble the puzzle. So nice communication between online and offline modes/apps.
ebay.com demo – All built using Flex. Real-time data incoming, displays a little more powerful than web version. Grabs user=generated HTML on sale items and integrates that into the Flex app in real time.
Twirl – Twitter update client.
AIR FAQS
Is Air right for all desktop apps? Is Adobe trying to knock off .NET? No. It’s right for certain kinds of apps. Not trying to replace all desktop technologies.
Can I extend AIR to get lower level OS access? No – we don’t want people creating Windows-specific AIR apps, so it’s 100% cross-platform.
Doesn’t AIR create security issues? No more or less than any Windows or Mac desktop app. Exactly the same.
Are web devs smart enough for this? Do we really want web devs to create AIR applications? Absolutely. They’re exactly right, in fact.
Can you run AIR apps on mobile phones? Not yet, but we want those clients to appear.
“Badge” install you can put on your web site – will check for presence of AIR and install it if nec. No way to create a self-running version (that runs without installing the runtime separately).
There’s a full API for checking for newer version of your apps – if detected, can update app and relaunch as seamlessly as possible.
Full https support. Full web service support (REST, xmlrpc)
You can generate PDF on the fly – not a high-level API to do it, but it can be done. But you have to wite the PDF headers manually (similar to generating PDF in PHP).
Where do you get the air sdk from?
Do you have any more info on how to do this with AIR?
“You can generate PDF on the fly – not a high-level API to do it, but it can be done. But you have to wite the PDF headers manually….”