Adobe Air

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).

2 Replies to “Adobe Air”

  1. 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….”

Leave a Reply

Your email address will not be published. Required fields are marked *