What tools do I need to write Adobe AIR applications? - apache-flex

I cannot afford the Creative Suite or Flex Builder but I would like to develop a commercial Flex/ActionScript AIR application. Is this a viable goal and are there robust tools out there that don't cost a small fortune?
Have others done this? What am I missing out on without Adobe's pricey software?

You can build AIR Apps using the command line tool in the SDK which is free for anyone to download and use.
More info is on this page:
http://www.adobe.com/products/air/tools/
I quote:
If you prefer working with a text editor or another development environment, the free Adobe AIR SDK provides the tools you need to package and deploy Adobe AIR applications built using HTML, JavaScript, or Flash.
This is a direct link to the AIR SDK:
http://www.adobe.com/cfusion/entitlement/index.cfm?e=airsdk
You should have no problem using that in conjunction with the Flex SDK, which also available at no cost.
You can get Flash Builder Standard for $249. I believe this to be nominal compared to the hourly rate that you'd pay a programmer to build an application. There are other IDEs with Flex support including FDT ( http://www.fdt.powerflasher.com/ ), IntelliJ ( http://www.jetbrains.com/idea/index.html ), and a couple of plugins to Visual Studio. ( http://www.ashorten.com/2008/12/10/new-flex-ide-options-for-net-and-java-developers/ ).
Most of these have an associated cost. It is my personal opinion that the $249 for Flash Builder Standard is nominal when you consider the cost of a developer's time.

Try the opensoure IDE Flashdevelop
http://www.flashdevelop.org/

Related

AS3 only app breaks when I compile w/ adobe sdk, works when I compile w/ apache sdk (same adobe sdk)

something strange happens when I switch between the adobe sdk (3.90.1210), and the apache sdk (which includes the same adobe sdk (3.90.1210)
one would think that there should be no differences when I make this switch, as my app is AS3 only, no flex references, and the underlying sdks are the same
the app builds and runs under both sdks, but about half of my images just dont show up when I run under the adobe sdk
so I dig down and I can see that the bitmap data objects that dont show up all have their HxW set to zero, the others have it set to proper HxW
the thing is, this has worked fine for a long time under the various adobe sdks, and something in the apache sdk fixes the problem, would like to understand it
meanwhile the wierdness in the images has something to do with having been flattened or not during production... images are all pngs, imported into flash and compiled to a swc, then merged into code
not a graphics guy, was hoping I wouldnt have to become one... have poked around and cant figure that side of it out...
suggestions?
one thought is to go back thru our hundreds of images and flatten (unflatten? whatever) them all with some photoshop batch process... this would not be fun
or I could stick w/ the apache sdk... which makes me a little nervous in that I have no idea what magic it's bringing
thoughts? anyone else seeing this?
thanks
To avoid stretching out the comments on the main question further, I'll throw this into an answer.
There are three official SDKs for Flash development. There are several others (like Starling) which have no affiliation with Adobe, so we won't count those.
Flash SDK - This is the basis for all things Flash and is developed solely by Adobe. Your core classes (DisplayObject, Object, Number, System, etc) are all found within this SDK. No matter what you are building for, every Flash application must include this SDK.
Flex SDK - Flex is a GUI framework originally developed by Adobe. After v4.6, roughly two years ago, Adobe donated the framework to Apache. Since that time, Apache has been developing the framework with fairly consistent development. We are currently at 4.11 with 4.12 due out in the coming months. This framework is also open-source, so it is partially community developed, partially Apache developed. There are two main different GUI frameworks in Flex: MX and Spark. MX is no longer in development, while Spark is. You should not mix components from the two.
AIR SDK - This is the Adobe Integrated Runtime. AIR allows you to run Flash apps as native apps on various platforms. The AIR SDK is the bridge between Flash and the native platform and nothing more. It is developed solely by Adobe and is closed-source. Apache has no part in this project, other than Adobe's promise to keep supporting Flex and MXML for the foreseeable future.
So with those things in mind, let's look at how they interact. As I said, the Flash SDK is included in all Flash apps. The AIR and Flex SDKs are built in ActionScript 3 (Flex is NOT built in MXML) using the classes found within the Flash SDK. The AIR SDK is used to build a native application, and that is the only time it should be used. The Flex SDK is a set of GUI components that make building interfaces easy and can be used in both web and AIR applications.
The Flex SDK can exist without the AIR SDK and the AIR SDK can exist without the Flex SDK. There is absolutely no reliance between the two. For the sake of unity, the Flex and AIR SDKs are generally combined into a single folder. This does not mean they are the same SDK or related in any way, just that this is how the SDKs are loaded. This was an ease-of-use decision by Adobe years ago when they still developed Flex.
So if your AS3 project is using the same AIR SDK version are your Flex app and you are getting compiler errors when you compile AS3, there must be something Flex in your project. Maybe a Formatter or the RPC classes used to make SOAP calls). You need to find that and get rid of that or import the correct SWC file from the Flex SDK, assuming it isn't a GUI component.

Flex + Adobe Flash: is it possible to use?

There is Flash Builder product by Adobe Flash.
Is it possible to use Adobe Flash product as Flash Builder when working with FLEX SDK? Have you the experience?
Thank you very much.
There is Flash Builder product by Adobe Flash.
The true sentence sounds like:
There is Flash Builder product by Adobe.
Then:
Is it possible to use Adobe Flash product as Flash Builder when
working with FLEX SDK? Have you the experience?
It is very unclear what exactly are you asking but I suppose the right question is:
Is it possible to use Adobe's product Flash Builder when working with
FLEX SDK? Have you the experience?
So this question can be answered: Flash Builder (formerly Flex Builder) from Adobe is designed to deal with Flex SDK. To tell the truth it can't use any other SDKs than Flex SDK (considering Adobe AIR SDK as part of Flex SDK). So the answer is: yes, it is definitely possible!
The last part of question (Have you the experience?) can be answered by Captain Obvious. Of course we have. That's why we are here to answer your questions :)
The answer is sort-of. Flash can use the free FlexSDK compiler. But it cannot process MXML the scripting language used to create flex framework applications.
However, there is a great open source free tool called FlashDevelop which can do both and works with the Flash IDE, or the FlexCompiler. http://flashdevelop.org.
It does not a have the FlashBuilder design view, and its profiler is not as complete as the one in FlashBuilder. But personally I prefer using it.
UPDATE: Below a reply says that flash cannot use any other SDK. This is not completely accurate a this time (Adobe CS5.5) Flash has its own compiler that does not include any FlexFramework classes. And so there are at least 2 flavors of compiler for flash. One through Flash, and one through Flash Builder.
Additionally there anyone can use the free flex SDK as a command line utility to compile swfs. This is what underlies Flash alternatives such as FlashDevelop, and the FDT Eclipse plugin, among other resources that compile swfs.

Flex SDK or Adobe Flash?

I am looking to get into Flash game development (coming from XNA), but I'm not so sure I'm willing to dish out for the pricey Adobe Flash software. I've noticed there is the free "Flex" SDK.
What's the difference? Would I be able to develop a Flash game using the free Flex SDK and submit it to a game portal in the same way I would, if I had developed a Flash game using Adobe Flash?
If you use Windows, FlashDevelop may be an option. It is free and open source.
I believe you can use it in conjunction with the compiler that comes free with the Flex SDK from Adobe, also to compile ActionScript projects that doesn't include the Flex component framework, in other words, to develop stuff like games and such, in pure ActionScript, rather than Flex based RIA's.
There are 3 different things here, I think.
The platform in itself : the flex sdk is a compiler that targets the flash player, and is perfect for game development, and you won't have any problem to submit a game developped this way.
The IDE : If you are a programmer you'll be disappointed by Flash Professional, which is clearly aimed at graphists. That leaves you with 4 main options : Flash Builder, the IDE offered by Adobe, FDT, developped by PowerFlasher, FlashDevelop which is free and open-source, and IntelliJ which now has decent AS3 support. Or, you can of course develop in any text-editor and compile with the Flex SDK
The framework : for game development, you probably don't want to use the flex framework, which is rather heavy and won' bring much in terms of functionnality.
There are a number of confusing* terms surrounding your question:
Flash - An interactive content development tool that has lots of vector drawing and animation capabilities, can incorporate interactive elements programmed in ActionScript, and publishes to SWF files.
Flash Player - A browser plugin that runs SWF files.
Flex - A framework for developing rich internet applications by programming in ActionScript and laying out UI in MXML.
Flex SDK - A set of freely downloadable compilers for ActionScript and MXML that generate SWF files.
Flash Builder (formerly Flex Builder) - An IDE sold by Adobe for programming ActionScript code.
Flash Develop - An open source IDE for programming ActionScript.
Long story short, a "Flash game" is a SWF file that runs in the Flash Player.
*Most of the confusion is because Adobe purposely made the terms confusing. Part of the problem is that they occasionally change things, like when they renamed Flex Builder to Flash Builder or when they changed Flex SDK from an IDE to the underlying compilers (and actually I'm not even entirely clear about that last one.)
I have used FlashDevelop earlier..
FD IDE great for AS3 developement..
Even they support Haxe which is one more open source programming language..
You can compile a Haxe program to a .swf file. Haxe can compile for Flash Players 6 to 10.
http://haxe.org/doc/intro
I think you should try Haxe and you will love using the FlashDevelop IDE as well.
You can:
1) use Flex SDK to compile pure AS3 code, which is convenient. It helps organizing your code and debugging, unlike Flash CS.
2) if you are making a game that involves a lot of drag'n'drop, GUI manipulations and so on, I would recommend the Flex Framework.
I have seen flex used well for games, altough it requires a bit more ground work in terms of sprite and cast organisation. Making games even in flash mx and 2004 was an absolute breaze, it really depends on the nature and complexity of the game, I find making games a little easier in the old flash 8 workflow, if we are talking cheezy pop cap games, but I have seen many casino's do perfectly decent work in flex on gaming engines.
As someone who also comes from a heavy MS dev background having gui dev tools is a plus once you have used RAD Tools you will never go back to linux style text editing and tools.
Flash Builder (flex 4) is a very very nice tool compable to visual studio in allot of ways.
Altough if I were to describe Flex Builder the workflow is identical to VB 6 its like VB for the web, except instead of vbscript you got a full oop language instead.
I would recommend using it (even in 60 day trial) I would recommend it.
I have seen some very good flex game engines even a port of quake 2, so depending on how sexy you want to get it can handle very well.
I know am replying late to this question, But just wanted to add my view on Flex 4.6,
Its wort upgrading to Flash builder 4.6 where mobile development on Blackberry, Android and IOS is supported. Its much simpler to develop and build applications for mobiles using Flash builder 4.6.
You can also refer to
http://www.adobe.com/devnet/flash-builder/articles/whatsnew-flashbuilder-46.html
http://www.adobe.com/products/flash-builder/features.html
Flex isn't really for games. It's more for RIA (Rich Internet Application), which isn't really the same thing.
You can program against the Flex SDK itself, and it's free, but you'll be 1/10 as productive than if you use Flash Builder. It does a whole lot for you. But, anyway, I think you should look into Flash development - not necessarily Flex.

What technology for a rich UI desktop application?

For an internship, I'm gonna have to develop a desktop application. The focus is creating a rich UI ( cool effects, sound etc ). Which tech should I go with ?
- Flash ? ( in this case, shoud I go with a flex project ? AIR ? what is the gain between this and a simple raw flash project )
- C#/Silverlight ?
Any other possibility ?
If experienced developers could give their advice, that would be great thanks.
The best technology to use is probably the one you're most familiar with, unless you mean you're going to be learning on the fly. But for the various options I'll take a stab.
Flash itself (the runtime) is a browser plugin, so that's not what you want, but if you build your application in Flash or Flex (the authoring tools), then you can publish it as an AIR application. AIR is also a runtime - basically it's Flash, plus a bunch of extra APIs for running outside the browser. The advantages to making an AIR app are:
The same app runs on win/mac/linux
You can make it with the same skills/tools you use for Flash (dubious utility if you don't have those skills/tools, of course)
Close tool integration with other Adobe tools (photoshop, after effects, etc.)
The main disadvantage is incomplete access to native (i.e. OS) capabilities. The way a runtime allows you to run the same app on win/mac/linux is by restricting you from doing some of the things that you could do with a native application.
As for Flex, whether you use Flex or not is a separate question. Flex is a framework within Flash - an AIR app can be made using Flex or not using it. Basically, if you expect your app to have a lot of controls, slider bars, charts, accordion panels, etc., you might look into Flex. If you expect it to have a lot of animations and pictures and sounds, plain-old-Flash may be better.
Apart from Flash, the other main choice for a runtime is Silverlight. The advantages there are, to be honest, basically the same. You use .NET instead of ActionScript, and the tooling integration is with MS' Expression suite instead of Adobe's creative suite, but the development process and the results are quite similar. The choice between AIR and Silverlight is really a choice between Adobe tools and MS tools, and between two programming languages of entirely comparable power. Most everyone simply uses the one they're more familiar with.
Finally, the other set of options is not to use a runtime, and to simply compile an app from any language/development environment you like - C, C++, .NET, Python, anything. The advantage here is you get (in general) full access to OS capabilities. The disadvantages are, you (in general) need to do extra development to run on multiple platforms, and also I don't think you'll find a language/environment that lets you work with multimedia as easily as you can in AIR and Silverlight.
Depends what programming languages are you proficient in. If you are .NET/C#/VB.NET guy go with SilverLight or WPF. If you know ActionScript, go with Adobe line of products.
My preference goes to the (slightly) most opened universe. Assumed that you know how to write Object-oriented programs, Adobe is using Eclipse as a base for his tools, using plugins.
Actionscript is just like Javascript syntax. You just have to learn the flex 4 libraries.
Then, publish you app as an Air desktop application that can run everywhere. Really everywhere
The only thing to know about MS tools and languages and libraries is that they are very well designed and usable. and it runs on Win and mac also. and Only.
If the main request is to have a rich UI the simplest approach is to build a Flex application running under Adobe AIR platform. The answer to the questions Flash or Flex is very simple: if you are a designer go with Flash, if you are a developer stay away from Flash and use Flex. The Flex framework was created for developers, and is really hard to replicate all its features in Flash (think only what you have to do in Flash if you want to resize your app).
On the other hand if you are coming from a .NET background it will make more sense to stick with Silverlight/C#
I'm not sure if this helps but I'm developing in Flex and now I have started to learn Silverlight and I can say that developing in Flex Builder is much more faster then developing in Silverlight( Visual Studios ) . For me Flex Builder is much better because you use only one IDE to develop both back and front end. And that's when it comes to web development. If you want to do desktop applications then you do the same thing and a plus is that you get everything in only one file. You also have a small SQL database that comes with it.
But on the other hand when you develop in Silverlight you have to use several IDE's or tools outside Visual Studios to make awesome graphics. But if you want to have more time for design then I would suggest to use Flex Builder and not Silverlight.

What are the Pros/Cons of Flash Builder vs. FlashDevelop?

I want to play around a bit with FLASH for app development. I'm looking for a good IDE for that. Someone suggested Flash Develop.
Flash Builder
Pros
better debugging and profiling
visual designer for MXML
because of Eclipse: support for other languages (eg. with Aptana, PDT...) and usage of plug-ins for the Eclipse Platform with features not shipped with FlexBuilder (code snippets with CFEclipse "Dynamic Snippets", "auto-code" for getter/setters with Monkey scripts...)
support of virtual folders/files (links to external files/folders handled intern by Eclipse, so also working on Windows)
refactoring (renaming of classes, functions, properties with automatic changing of dependencies)
Cons
Commercial license
Big and because of Eclipse problematic with newer Eclipse versions for the FlexBuilder plug-in version (eg. not working with Eclipse Ganymede 3.4.1)
adding and configuring the missing features with Eclipse plug-ins needs time and searching in the Internet (which plug-in? settings etc.)
Code assist only average and sometimes buggy eg. if correct imports are missing ("java.lang.NullPointerException")
missing of a code formatter or automatic get/setters (but there are solutions with other Eclipse plugins like Monkey Scripts, CFeclipse, Flexformatter "FlexPrettyPrintCommand"...)
sometimes a bit sluggish if background tasks in Eclipse are working
no package explorer
AS2 and AS3 only - no Haxe
FlashDevelop
Pros
free and Open Source (developed with C#)
lightweight and snappy
best available Code Assist for ActionScript
supports all flash languages - AS2, AS3, haxe
"auto code" for automatic getter/setter, variables, code for event handlers
code snippets with integrated snippet editor
extendible with plug-ins
support for asdoc comments
package explorer (show classes, symbols from a SWC file)
basic refactoring
multiple source code folders per project
useful plugins : ANT integration, SWC creation, mini map, quick navigate
Cons
only for Windows
no visual designer for MXML
no support of virtual folders/files inside the project
weak refactoring
changing classpaths must be done manually
plug-ins often not working in newer versions and many plug-ins are only rarely updated
limited support for debugging Haxe applications
Common
Pros
projects for full range of flash apps : websites, AIR (desktop, mobile)
debugging of FP/AIR apps with breakpoints and stepping
debugging with watch windows and locals
support for ASDoc comments
automatic adding of imports and organizing of imports
class wizard
SVG/GIT integration
Cons
no editing of graphics or animation (use Flash IDE for that)
Summary
For debugging, visual design of MXML forms : Flash Builder
For coding AS2/AS3/Haxe projects under Windows : FlashDevelop
Major reason to use FlexBuilder: has a real debugger you can set breakpoints and single step and watch/edit variables.
Unless FlashDevelop has .. developed .. don't think it got any of that yet.
BTW - if you are a student/teacher FlexBuilder can be had for free
Flex builder has a design view for MXML so you can build more visually. Flashdevelop on the other hand is free!
I've been using Flash Developer. Trying now FlashDevelop. FlashDevelop is fast and light, and I'm trying to switch just because of that.
I'm using HG + TortoiseHG for source control. I have 2 screens, so having external source control is not a big problem. Also the IDE stays a little cleaner by not having all the little source control icons.
DesignView helps with not having integrated design.
Also, I can debug with FlashDevelop and see the variables. I'm using FD3.2.1.
Along with what was already mentioned, Flex Builder has some nice tools that helps a developer to learn how to create a data enabled Flex application in form of the Data Wizards and also a nice web services introspection tool that automatically creates an ActionScript 3 client for a web service.
I'm using the new Jetbrains IntelliJ 8, and it's great (especially if your used to java developement). Has a lot better XML/JavaScript editors that any other IDE.
The latest version of IntelliJ also has a good flex/javascript debugger.
Here are two objective contrasts between FlashDevelop (with the Flex 3 SDK) and FlexBuilder. First, only FlexBuilder includes AdvancedDataGrid. Second, FlashDevelop has no source control integration.
AdvancedDataGrid is not included in either the free or open source Flex 3 SDKs; if you want it, you have to buy FlexBuilder. (I assume it is probably possible to use it via another SDK if you possess FlexBuilder.)
FlashDevelop doesn't have any source control integration, FlexBuilder possesses the existing, stable source control options for Eclipse. This includes Subclipse for SVN, as well as a lot of other things. As a longtime Visual Studio and Emacs user, in FlashDevelop I'm beginning to feel unsatisfied with leaving the editor to check in.
Flash Builder, even in version 4.5, has primitive, useless syntax coloring and customization features. From a 700$ package I was expecting at least what I can do with my free text editor.
In the syntax coloring preferences, there is a total of 6 keywords, and you cannot add any custom one.
How am I expected to code having variable names, function calls, and classes look exactly the same?
I will stick to Flash Pro CS5.5 and SciTe.

Resources