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.

 

 

10 Comments:

  1. Keith Peters

    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. :)

  2. Shadow Wolf

    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.

  3. Juwal Bose

    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.

  4. Riaan Pietersen

    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!

  5. Serdar SIMSEK

    I think it is only actionscript 3.0. Use it with Flex or use it for Flash. Only word is AS3 :).

  6. Russ

    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.

  7. Derrick

    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.

  8. Joeflash

    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.

  9. Joeflash

    @Derrick: I can just see Jacob Nelson's next major article: "Flex 99% Bad"... LOL!

  10. Joeflash

    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. :)


Leave a comment

Name: (required)

Email: (required)

URL:

Captcha test: (required)
Comments: (required)

wrap code blocks in <code> </code> tags