Since it came out a couple years ago, I've held onto a fascination of sorts with the Adobe AIR runtime. The idea of developing desktop applications with web technologies is very appealing to me. In the past few days I've finally got around to writing Adobe AIR support directly into my Hierophant PHP framework.
What I expect to accomplish with AIR revolves around two entirely different sets of audiences and goals for the resulting AIR apps.
One set is for the average user. I want to create sophisticated desktop tools for managing Hierophant websites. i.e., uploading files to the web server via drag and drop, and expanded options for editing website content using client-side desktop applications. For example, I want to offer my users the ability to edit their web documents in Dreamweaver, if they don't happen to care for the built in WYSIWYG that I provide by default. For that matter, a user should be able to use any client-side application they like. Don't like Dreamweaver? Use TextMate or whatever you happen to have available that's capable of editing HTML content. And yes, I would like these management tools to work equally well on any platform.
The other set is for managing and deploying the framework itself to web servers. So this type of user would be more technically inclined. For reasons of personal taste, I have only supported Mac and Linux operating systems for installing this framework. It could theoretically be made compatible with Windows, but I have no desire to deploy to that platform. But since it's an open source framework, I have no problem with someone else coming in to fill this void should he or she desire.
Imagine my surprise (and disgust) to find, after writing in AIR support and compiling my first AIR app that AIR has no ability what-so-ever for executing shell commands. The reason? The AIR developers don't want people writing apps that can potentially be tied to a single platform. Additionally, there is no ability to launch arbitrary third-party applications on the user's computer. Both of my goals are more or less blown out of the water because of the imposition of AIR's developers' philosophical views on cross-platform development.
In order to use AIR to write an installer for my framework, I need the ability to access the shell, and subsequently send commands to subversion and PHP to automatically check out the code, build the file structure. Then automatically configure and restart Apache. I want to be able to detect a user's server environment so I can automatically present remedies for potential problems. I presently have an installer script that does all of these things, but it can only be executed from the shell... hence my interest in a GUI-based solution.
And of course, in order to offer my users the ability to edit content in any application, I would also need the ability to execute shell commands, whereas I could open those applications and automatically open a given file.
I think it's unfortunate that a platform with as much potential as this is deliberately shackled. Why should it be your business if I do or do not limit to one platform or another? Let my apps stand on their own merit! I can see how some developers may arrogantly and needlessly limit an app's ability to run on one platform or another (my own such arrogance included), but I do not think that is outweighed by all of the innovative uses for the runtime that are stifled by such a ridiculous limitation.
I am also quite annoyed at Adobe's insistence on obtaining permission to distribute the SDK. Ideally, I'd love to bundle the AIR SDK with my framework, so that when you deploy the framework you can compile your accompanying AIR apps on-the-fly, and everything just happen automatically right there on the server. The AIR apps are compiled on-the-fly, of course, so that a login token can (optionally) be embedded right in your AIR app so you never have to log into the website.
At present I am exploring alternative options, such as Appcelerator's Titanium. Perhaps the next version of AIR will remedy this, but I'm not holding my breath.
There are no comments posted at this time.
* All comments are moderated and are subject to approval.
Your comment will appear once it has been approved.
Posting multiple times will not expedite the approval process.