views:

221

answers:

5

I'm pretty familiar with using Adobe Flex & AS3, and compared with writing apps in JS/HTML I think it's very cool. However, since AIR is essentially a non-browser version of Flex with benefits like local storage, it seems to be competing as a cross-platform desktop application platform... and in that space it's much less mature than more established desktop technologies.

So what's the advantage of creating a desktop application using AIR compared to something like Java (or C++ using a cross-platform GUI library like wxWidgets)? Java's equally capable of communicating with the server for instance, I'm not quite sure what AIR adds when competing head-to-head in the desktop development world?

+2  A: 

In my experience there is only one advantage:

  1. Cross-platform

However there are a number of disadvantages:

  1. No communication with native platform except by installing a separate server!
  2. Native window handling is very primitive (no modal dialogs!)
  3. Less mature (i.e. buggy)
Groky
+4  A: 

AIR takes the goodness of Flash Platform cross-platform and as of 10.1 across many cutting edge mobile platforms as well not to mention that Google is actively working with Adobe on the mobile AIR for Android. That's the key perspective here and I think you don't doubt the fact that Google's open-source platform will be big. Android devices make the fastest growing chunk of mobile platforms already. Also, think of the upcoming Chrome OS. Is AIR going to have a role there? I bet it will.

IMHO AIR makes it a lot easier to deploy rich applications across platforms. Rich Applications as in terms of Flash Platform.

See what Wired has done with Adobe on ePublishing. That should answer this question well.

Ain
But can't Java (for instance) be used for cross-platform applications... even on mobile devices these days? I do take the point that mobile devices _might_ skew things more in favour of AIR, but _only_ if you want a mobile version, this question is (mainly) aimed at desktop apps.
John
Java is a safe choice indeed and isn't that different from ActionScript these days. The matter the guys below have also mentioned is the turnover deployment time.I've been involved in a Flex Message Board dev lately and we had quite a few challenging bits there. Some in 3D, some having a rather complex align-text-to-curve devs etc. The visual appeal we achieved would be very hard to replicate in Java without a serious performance setback.So I think it's really about what you're trying to achieve and what your app is out for, very much like Cornel already said below.
Ain
+2  A: 

Fair Question. Well to begin with AIR is not "a non-browser version of Flex" or "a non-browser version of Flash" ADOBE AIR is a run-time that hosts applications created in a variety of protocols including: HTML, JavaScript, AS3. If one is so inclined tools like ADOBE Alchemy will let users who prefer C++/ JAVA to compile code into SWCs and SWFs.

From a designer's perspective ADOBE FLASH, DREAM WEAVER, and FLASHBUILDER provide seamless desktop application development. While from a developers stand point the same code used for web based content becomes available creating desktop application with little to no recoding. This is all without mentioning the ability to leverage existing E-commerce and web based marketing APIs and SDKs; creating a dynamic intelligent experience for the end user on the desktop.

ILOVEapples
+5  A: 

In my opinion the biggest advantage is productivity (if you are interested only on desktop)- it's much more faster to build a nice UI using Flex compared with Java Swing for example (try to build a transition in Swing). Also the new components from Flex4 allows to do component skinning much easier.

However (as written by Groky) you should take into account also the disadvantages. It would help if you write down what are the main features of your planned app and check how they are handled by various platforms. For example if multithreading is needed AIR is a bad choice.

Cornel Creanga
So you think AIR is a genuine contender for a cross-platform desktop-app, even when there's no web-version to swing things?
John
+1 Ease of development - UI as well as communications with remote server - is the key plus point of AIR over other desktop platforms
Amarghosh
John - yes, but again depends on your application, your development team and so many factors. There is no one size fits all. It would be much more easier if you can edit your post and add more details about what are you trying to build.
Cornel Creanga
+2  A: 

For me and my company, the main advantage is that it's the same code on our website as in our AIR app. This could be a Flex app or HTML/JS app, but you keep the same single codebase.

AIR 2.0 will address Groky's issues, with access to native applications, better window handling, and much less memory intensive, which led to lots of bugs in 1.0/1.5.

If you don't have a web app already, and you're not locked into AS/JS, then there's no real reason to go with AIR over Java/.Net/PxWidgets... unless you like the look of the latest Flex 4 components, which is quite nice.

Dusty J