Why Not an AIR Application?

There is a fantastically interesting conversation happening on the “Apollo Coders” Yahoo! Group. The original message comes in from Jeff Houser of The Flex Show fame, and is about wanting to build an AIR application for a client. The requirements however, and the responses from the list, pretty quickly nail this as distinctly not an AIR application. I couldn’t help but wonder however, what functional changes to the requirements would make this an AIR application?

The most notable requirements from Jeff’s customer include accessing a local MS Access database, and being able to integrate pretty deeply with Word, Excel and PDF on the client. This is clearly working with Microsoft products on a Microsoft desktop, and the list goes on to suggest WPF, which is probably the right direction. Adobe AIR is about bringing the web to the desktop in a cross-platform manner, not the desktop to the web.

When we talk about the extending the web, we’re talking about a world of service-oriented architectures (SOA), social networking (Web 2.0), Apple iTunes (including the iTunes Music Store), a Google office suite and more. These paradigms shift, expand, extend, or outright revolutionize application development. What happens then if we put Jeff’s application on an open source and standards-based diet? How do the feature requirements change?

“The application doesn’t need to share memory with other applications…”

I think the Web 2.0 answer to this is actually, why not? Social networking has proved a valuable asset in everything from retail to business (i.e. group rankings). Sharing and collaborating on data is becoming pretty common (i.e. Google Docs, Google Calendar). It’s not a far stretch to even apply real-time features such as text chat (or even VoIP). I’m pretty sure this wasn’t Jeff’s original direction, but I think it’s an interesting twist.

“Would need to get data out of an MS-Access database…”

The answer here from an AIR perspective is two-fold I think. In a connected application there are actually two data stores (at a minimum). First there’s the client data store, which in the case of Google Gears and Adobe AIR means a local SQLite instance. Jeff mentions that porting from MS-Access isn’t valid, which is fine. What would happen if it was valid? There’s a ton of tools around SQLite, so I think getting data from Point A to Point B would be pretty straightforward (the devil is in the details).

When it gets interesting is in the second data store, which is actually the data store we all pretty much take for granted today – the database on the web server. In fact, in an AIR mentality, the remote server data store would actually be the primary touch point. The SQLite client database would be used for offline and synchronization purposes. When you start putting data on a remote server and using local access for user-specific needs, you really start to open the door for the first point of collaboration.

“How do we generate the PDF…”

Not that we’re all squarely back on the server, let’s take a second look at that question. The first approach that comes to mind is ColdFusion 8 with its new PDF features. The second approach that comes to mind would be LiveCycle Generator, which is designed for exactly this purpose. It seems feasible that either of these solutions could expose themselves as services that take a list of document files, and returns a single PDF. In fact, Adobe offers a point service that enables exactly this feature.

We did say that we wanted to put the application on a open source and standards-based diet though, right?

If we wanted to stay true to the “web” we’d also have to consider HTML itself. HTML after all is designed for documents. HTML can display tables, and if Google Spreadsheets is any indication, can pretty reasonably accomplish 80% of the more common Excel use-cases. Any word processing content is obviously also a target for HTML. Did I mention that HTML is a first-class citizen in Adobe AIR?

That’s where it starts to get really interesting!

Adobe AIR also supports native file extensions (as of the AIR Beta), so you could save HTML, but put your own extension on it. When a file with your extension is double-clicked, the AIR application launches and displays that “document.” Now you’re talking about extending web technologies and standards to the desktop, which is exactly what AIR aims to accomplish.

I know that none of this falls within Jeff’s requirements, and I’m not trying to pick on him. I do however think that AIR applications require a different mentality. When we think about applying open source, web standards, Web 2.0 principles, and services-oriented architecture (SOA), a different type of application emerges. In this case it is one that potentially solves the problems, adds new value and runs across multiple operating systems. Go web, go AIR!

4 Responses to “Why Not an AIR Application?”

  1. Jeffry Houser Says:

    For those interested, this is the direct link to my post that started the thread:

    http://tech.groups.yahoo.com/group/apollocoders/message/1189

    I wanted to draw attention to Mark Pillar’s recent post on the thread.

    http://tech.groups.yahoo.com/group/apollocoders/message/1236

    It was not clear from his post, but Midnight Coders is going to be releasing a a stand alone version of WebPRB for AIR. It will address many of issues I have. This sounds similar to my original suggestion to “write a proxy server in .NET or Java that will listen to a port, and perform this task. Then make calls to that server using the AS3 socket class.”

    But, WebORB even better because it supports RemoteObject.

    Mark’s post is making me consider “Flex + AIR + WebORB + .NET” for this application.

    BTW: This is now favorite AIR quote:
    “Adobe AIR is about bringing the web to the desktop in a cross-platform manner, not the desktop to the web”

    It really sums the technology well.

  2. JJ Says:

    Kevin,

    First off, great preso. @ Flex Camp. I have an AIR question that has been bugging me and don’t know where else to turn. I have a swf that I’m loading into an AIR app. This swf is a webcam widget. AIR won’t “pass thru” the camera and mic stream.

    The app. works great in Flex when I modify the security settings. What is different about AIR? I’ve read the docs and scoured the newsgroups.

  3. Taylor Says:

    Great quality stuff.

  4. Weight Reducer Says:

    I found your blog on google and read a few of your other posts. I just added you to my Google News Reader. Keep up the good work. Look forward to reading more articles from you in the future.

    - Jack

Leave a Reply

You must be logged in to post a comment.


order cialis in canada clomid without prescription lasix for sale synthroid prescription discount cialis overnight delivery buy generic propecia order no rx viagra buy viagra low price buy viagra online viagra sale cheapest viagra buy cialis from india buy cheap acomplia online buy clomid cheap purchase clomid order discount viagra online where to buy viagra price of lasix price of propecia soma without prescription purchase clomid online find viagra no prescription required buy generic zithromax synthroid online stores price of synthroid purchase lasix cialis approved cheapest generic viagra online find viagra cialis pharmacy online best price viagra buy cheapest cialis on line cheapest viagra price buying cialis lasix generic order cheap cialis find viagra online buy cialis lowest price best price for viagra purchase zithromax lowest price soma cheapest generic cialis order cialis online cialis free delivery lowest price viagra purchase viagra no rx order cheap cialis online viagra australia discount clomid cheap synthroid tablets cheap cialis pharmacy online zithromax online synthroid buy viagra on internet levitra prescription viagra tablets sale cialis cialis price buy cheap clomid online cheap viagra in canada buy clomid online buy generic viagra cheap viagra from canada cialis in bangkok discount viagra online cialis australia acomplia for sale buy cialis no rx buy levitra without prescription viagra online stores buy cheap viagra online viagra cheapest price viagra rx