Flash vs Flex, what to choose when

If you're a ria developer like me you've probably encountered this situation at least once. You have this somewhat large project to do, there are lots of interactive elements to it and the target format is swf. If you don't already know this, both Adobe Flash and Adobe Flex delivers in the swf format, the same player and all. The only real difference dwells in the approach in which you choose to take developing the finished product. My approach to this would be to first define what kind of project this will be. Will this end up to be a presentation (1), driven by animations and not so much depended on user interaction to work. Or will it become a (2) true ria application, containing lots of interactivity and projecting a user depended interface.

In the first case, your choice should be Flash, as this tool has a timeline and is in fact intended for online presentations with some interactivity. Flash is great for presenting video, small games and other project that can be clearly defined as more depended on the designer rather than the developer.

In the second case you could in fact go for Flash as well, which will be slow and horrible, but it will do the job and the end product will most likely end up looking almost identical. However, when doing developer driven project, the tool used should be a developer tool. Enter Adobe Flex. The UI of Flex is dramatically different from Flash, focusing on code to a much larger extend and totally abandoning the timeline. Because Flex is build like any other developer tool, like xCode and Visual Studio, most developers will feel much more familiar with the UI of Flex. Another thing to consider is development time. Since Flex features layout elements made especially for making applications, it much easier to set up an UI that will shrink to fit the needs of the user. And Flex has even more trick up it sleeves, it can handle swf's exported from Flash. So really, you can have the designer make custom elements all the way trough and set it up visually in Flex. However, most designers will probably end up using Flex powerful CSS support instead, as it's quicker and makes for a more consistent user interface.

The difficult thing here isn't really to convince a designer to work in Flex, or a developer to work in Flash.. the hard thing is to define which is the right tool for the project you're currently working on. Well, good luck with that then ;-)

7 comments:

Ryan Stewart said...

Hey man, really good post. I'm always surprised that we have confusion about the difference between Flash and Flex so posts like this help get the word out.

=Ryan
rstewart@adobe.com

dvsjr said...

Adobe is HORRIBLE about getting info about Flex out to the masses. If I have to search the web, and find that the resources on Adobe.com aren't cutting it, they need to step their game up.

Anonymous said...

Nice post! However, I just have to add my 2 cents.

The web development industry to a large degree assumes that you're either a developer OR designer. This is a gross over-simplification of the reality where there are many people who are designer-developers.

Mary said...

I have to agree with Ryan..it's a very good and clarifier post! =)

Anonymous said...

Thank you Jørn. You may not have any idea how useful this framework comparison is to .NET developers interested in adopting new frameworks that are actually in demand and can be run on the greatest number of devices.

Insanity said...

Thanks for clarifying the differences. But, I have one question. Will the accessibility that is advertised most with Flex is also supported with applications that re built with Flash? Is there a minimum version of Flash Builder that this support exists?

Jørn Kinderås said...

@Insanity Not sure if I get what you're asking, but Flash Builder is just an IDE for the Flex framework. The Flash Editor is something quite different again.