tags:

views:

764

answers:

4

I want to develop an Adobe air application. Whats the difference between using the Air SDK or Flex SDK and what are the advantages / disadvantages? My application will use a SQLlite database and PHP may be involved later if I turn the whole thing into a web app.

thanks

A: 

If you're considering deploying on the web, and communicating with a backend server and all that jazz, then flex is the way to go. If your target is desktop users, then AIR.

Nik Reiman
I understand that. I want to build a desktop app but might also want to deploy the same app as a flex-built swf. There are two SDKs - one called the Air SDK which I assume is only meant for deploying desktop apps. The other is the Flex SDK which you can also use to build a desktop app (I think)
codecowboy
and thanks for the reply!
codecowboy
+1  A: 

These frameworks are combinable. If you want your app to be both on the web and the desktop, make it using the Flex SDK, then wrap the desktop version of this using Air.

grapefrukt
A: 

If you want to develop an Air application, you must use the Air SDK. If you want to develop a Flex application that runs on Air, you need to use both.

joshtynjala
+2  A: 

"If you want to develop an Air application, you must use the Air SDK. If you want to develop a Flex application that runs on Air, you need to use both." - joshtnjala

I believe joshtnjala to be partially correct, but I wanted to add on it. If using the Flex 3.3 SDK, you no longer require the AIR SDK as those tools are available to the Flex 3.3 SDK. It is important to note, because I see a lot of confusion or misuse of the term, Flex is actually three things.

  • Flex SDK (currently 3.3)

    allows developers without the Flash and/or Flex IDE's, to develop and compile/publish Actionscript3 and MXML code to flash content (SWF). For example, one could use FlashDevelop for an IDE, and compile the code using the Flex 3.3 SDK.

  • Flex Framework

    (From adobe http://www.adobe.com/products/flex/overview/) Flex is a free, open source framework for building highly interactive, expressive web applications that deploy consistently on all major browsers, desktops, and operating systems. It provides a modern, standards-based language and programming model that supports common design patterns. MXML, a declarative XML-based language, is used to describe UI layout and behaviors, and ActionScript™ 3, a powerful object-oriented programming language, is used to create client logic. Flex also includes a rich component library with more than 100 proven, extensible UI components for creating rich Internet applications (RIAs), as well as an interactive Flex application debugger.

  • Flex Builder 3

    Flex Builder is merely an IDE to assist in the development of flash (SWF), or AIR content. This builder utilizes the SDK above to compile. The framework may or may not be used depending on the developers needs. Many developers have taken themselves out of the FLASH IDE (THAT NASTY TIMELINE!) and began scripting their AS3 purely in the Flex Builder IDE as it provides many useful features for the "advanced" programmer; Not to mention its a very clean UI and is built on eclipse so it has many plugins and a solid community behind its architecture.

That being said, to expand on what joshtnala said, the difference between using the AIR SKD and the Flex 3.3 SDK, is that if you merely want to build an AIR app, composed of Actiosncript3 code, the AIR SDK is all you need (33mb unpacked). If you intend to use MXML and any part of the "Flex Framework" then you must use the Flex 3.3 SDK (190mb unpacked). This will allow you to use the many available components such as Datagrids, Accordions, etc, in your AIR application. So in the end, both will develop an AIR application as Flex 3.3 SDK incorporates the AIR 1.5 development tools. Abstract your project out, figure out what you will need, if a component works for that, or if a custom implementation is needed, etc, then choose your toolkit.

Hope this helps.

Brian Hodge
blog.hodgedev.com hodgedev.com

Brian Hodge