The No.1 i-Technology Magazine in the World !
   
 

      ES no BS
       My son's animations and music            training         Twitter            No BS IT podcast

Archives

««Mar 2010»»
SMTWTFS
  123456
78
9
10
111213
14151617181920
21222324252627
28293031

RSS Feed








Subscribe to these blogs

Adobe MAX. Blog #3. Freedom to AIR!

posted Monday, 17 November 2008

On Sunday morning, I got my two conference badges – one for Press and the other one as a Speaker.  Each of those gives an access to special receptions or meetings with Adobe big shots, and I don’t want to miss any of those.

While waiting for the doors to the AIR Lab room to open, I overheard how one of the attendees have whispered to the other, “T-Shirts are over there!”. Now I can fulfill my main mission at MAX – bring MAX T-Shirt home for kids.  Being an honest person, I explained the t-shirt girl that I have two badges and asked if I can get two t-shirts.  She scanned both of my IDs – everything’s kosher. But then, the girl realized that making such decisions requires approval, and asked the senior t-shirt distributor for an advice. The older lady said, “No, one person – one t-shirt”.

So much for being honest… My bad,   I violated the KISS principle – keep it simple stupid. I should've made two approaches to the counter.  Learn from my mistakes and don’t delegate the process of making important decisions to inexperienced people.

The rest of the business hours I spent in the Adobe AIR 1.5 class taught by Leo Shuman, an excellent instructor who managed to run this hands-on class packed with the information flawlessly. This is even more impressive given the fact that there were fifty people in the room .

AIR adds to Flex has a pretty straightforward API for working with local files and directories. There is a simple mechanism of installing and upgrading AIR applications. If you want, you can digitally sign them too.  AIR 1.5 introduces local encryption, which means that you can encrypt, say a user’s password and save it in a local storage. 
<mx:HTML> component allows you to build a Web browser in several minutes. Flex developers would love to have it too...

Programmatic monitoring of network connection is really easy. This is one of the selling points of AIR. If you are disconnected, save the data in the local database, and when connection is restored, the local data can be automatically synchronized with the remote DBMS…if you have LiveCycle Data Services.  For BlazeDS you need to develop your own solution.

The API for working with local SQLLite is easy to understand, but the result set comes back as untyped array of objects with properties corresponding to the table column names.  It would be nice to have an ability to specify a strongly typed ActionScript class corresponding to the expected result set.   
I can live with this.

But AIR has some other restrictions that don’t allow it to be positioned as a full replacement to other platforms for development applications for the desktop. I see some inconsistencies in the design.

On one hand, you can write an AIR application that allows a user with the right credentials to erase files from local OS.  On the other hand, AIR doesn’t allow execution of the local code. In the previous blog I wrote that AIR won’t allow you to invoke an ActiveX required to start Microsoft Outlook.  Why?
After the class, I spoke to one of the Adobe engineers about it. He said, that the reason behind these kinds of limitation is a requirement to keep AIR a cross-platform tool.

I don’t think so.  IMO, Adobe should learn from Java, which is cross-platform, but provide JNI API to allow developers using features specific to a particular OS.

As of today, to support automatic Outlook emails with attachments, I need to write a C++ program that will invoke AIR, and then Outlook, which is not the architecture to die for.

Dear Adobe, please make AIR a  full-fledged desktop development platform. You can’t be a little pregnant.

Stay tuned.

P.S. Got a feedback from a Jim Hayes about untyped results with SQLLite:"In fact, you can do this. Set the “itemClass” property on your sqlStatement to your custom class and results are returned as instances of that class". Thank you, Jim.

tags:      

links: digg this    del.icio.us    technorati    




1. Valery Silaev left...
Saturday, 22 November 2008 7:20 am

The other issue with AIR is that development of modular application is near to impossible. The security model forbids loading of modules at run-time, and the only options is to fall back to ad-hoc custom loaders that loads module content via loadBytes. I.e. to satisfy AIR security requirements for modular applications one has to screw up AIR security completely.

Worth to mention, that themes are loaded as modules too, so no run-time theme switching is possible either.