When to Flash and when to Flex
I received an email yesterday from my wireless/cable/home phone/internet company inviting me to take part in a customer appreciation online event. Click a link win a prize, sure why not. The first thing that greets me upon clicking the url is the 'out of the box' Flex preloader. Wow, beautiful, they really broke the bank on building this campaign. I guess since they used Flex there wil be a lot of forms to fill in, maybe some neat charts and graphs, must be more than your standard, run of the mill marketing campaign.
Ok, if you are building a Flex app, replace the standard preloader, it's easy. Look here, here, and here.
Wait for the preloader to finish, looking forward to seeing some neat Flex app they've built.

Oh man, I can't wait

Wow, this looks like something that could have been built in Flash. Maybe if I click the open button I'll get to the good stuff.

I won't bore you with more screen shots. That's it, that's the only Flex'ish screen in the entire application. One simple data entry form.
So my question is why? Why would Rogers, or more likely some outside agency, build this site using Flex? What possible benefit did they get by using Flex? The data transfer off the form is a simple HTTP POST, even something more exotic like AMF could just as easily be done in Flash. Maybe there are many forms, with lots of data validation etc to go through. Nope, just the one pictured above, and based on the look they went with, that could have been done just as easily in Flash, it's certainly not the standard Flex controls.
The entire swf is 2.3MB, the Flash framework likely accounts for 500KB of that, maybe more, so it's pretty heavy with images etc and leaving out the framework would not have saved that much download time. But seriously, why would a site like this be built in Flex? It makes no sense. Flex is for APPLICATIONS. Flash is for CREATIVE EXPERIENCES. You need to use the right tool for the job.
It is pure conjecture on my part, but I bet this took longer to build in Flex than it would have taken in Flash. It was more than likely built by someone new to Flex so they had a learning curve figuring out how to get this done. Flex developers, in my experience, are more expensive than Flash developers, mostly because of their scarcity, so Rogers likely paid more also, but hey, that's ok since it was technically partially my money, money that really could have been better spent on upgrading their technology.
IT people, interactive people, developers, project managers, and anyone else involved in the process of deciding whether to use Flash or Flex for a project really need to weigh the pros and cons of each and then make an informed decision. Don't just think that because you ultimately get a swf from either path they are the same, they are not.
When to Flex:
- mid to large applicatios
- data heavy
- charting, graphing data visualization requirements
- modular development
- lots of form input UI screens
- not as concerned about final SWF size
When to Flash:
- marketing, promotional, interactive sites
- design heavy
- highly customized UI
- online games
- animation
- concerned about final SWF size
What about AIR? What about AIR ... you can wrap a Flash or Flex project in AIR. For that matter you can wrap an HTML/Javascript app in AIR.
Remember, Flex and Flash both ultimately boil down to the same thing. An AS3 based SWF. How they get there is slightly different and what they roll into the SWF is also quite different. Flex adds a lot of extra 'stuff' you may not actually need or fully benefit from, as is certainly the case in the Rogers site.




Nov 04, 2009 at 11:31 AM
I couldn't agree more. However, I know a lot of people who feel Flex should be used for everything. I've even seen people do action games in Flex. I guess you get some useful classes thrown in by using Flex, but you get so much overhead along with it. But I've given up arguing about it. :)
Nov 04, 2009 at 1:52 PM
Signed. This seems to be the beginning of a trend. Hopefully it wont last as long as the "design every webpage in flash" trend. It seems alot of "Professionals" are missing the basics.
Nov 04, 2009 at 10:37 PM
A completely different perspective is flex being open source and flash cs4 crashing on many machines. For many developers, development with flex compiler has become much mire easier and less pain recently. Its just something that concerned me at a point.
Nov 04, 2009 at 11:34 PM
We recently did a large job for a client building a management tool for some XML data they were using. We chose Flex as AIR was not an option due to massive rollout issues. Glad to see we chose the correct route! Good post!
Nov 05, 2009 at 7:38 AM
I think it is only actionscript 3.0. Use it with Flex or use it for Flash. Only word is AS3 :).
Nov 05, 2009 at 8:45 AM
I bet they used Catalyst, that is why it is Flex. Well the loading screen was Flex 3, so probably not. But I bet once the next release we will see a lot more of this type of extraneous Flex use.
Nov 05, 2009 at 8:53 AM
Russ, unfortunately I think you are correct, Flex 4 will likely usher in a slew of Flex sites and widgets that should have been created Flash.
Dec 12, 2009 at 3:48 PM
Being a Rogers customer, when I first got this email I was thinking the same thing: oh this will be cool, and then... what a waste!
Just as some sites should never be done in Flash, some sites should be done in flash, but never in Flex. This is the perfect example.
I'll be sure to email this blog post to the next bonehead who wants me to build them an interactive ad or an email game in Flex, just because someone thinks it's the hippest thing.
Dec 12, 2009 at 3:49 PM
@Derrick: I can just see Jacob Nelson's next major article: "Flex 99% Bad"... LOL!
Dec 12, 2009 at 3:53 PM
I was trying to find a post I'd made a while ago about the same thing, titled "Flex Websites are a Round Peg in a Square Hole" -- which is another way of my saying: I entirely agree Derrick. :)