tags:

views:

578

answers:

7

I'm a PHP programmer who's learning more about adobe products including flex, and would like to train myself to recognize when flash/flex is the right technology to use for a client/project (and of course when it's not the right technology to use).

I guess the best way to get it is by experience, so if you know of any examples (full site or even small part of a site) that you think the developer was right or wrong in choosing the flash technology for that project/part, please add it here with an explanation why. Same for other projects that were not implemented in flash but should have been. If you think the developer made the wrong decision, say why and what you would have used instead. The idea is to provide real examples to help people like me who are getting into flash/flex, but want to understand the right way to fit it into their work if at all.

+5  A: 

Here are some good examples of Flex/Flash/AIR Websites/Apps.

Some other companies that have apps to crunch their numbers are:

But notice how all of those sites use HTML to present the app... I think that's because:

  • Flash Text Rendering is a bit slower than HTML (not sure if this is true, or why... don't have any numbers)
  • HTML Templates exist already for blogs and product promotions, flex ones don't
  • There's lots of tutorials on how to do it in HTML, and none in Flex.

No one has built a Blogging system in Flex, or any content heavy, text rich website/app in Flex because it's pretty tough to do it, or it was at least. Plus to optimize it so it's as speedy as sites like StackOverflow and Google, it's tough, but it can be done. Here's a start on a blogging system from the Adobe Experience Design Team: INSPIRE. And here's some things on how Flex Apps can be built poorly.

Some content heavy websites are things like news sites (CNN, Fox, New York Times...), social sites (Facebook, Digg, Technorati, etc.), or just plain blogs, but even content heavy sites could be redesigned to be more interactive (like the INSPIRE blog, or TweetDeck). Other ones like Amazon could be made into a Flex app no problem. I think a lot of it just comes down to optimizing Flex sites so they're on par with HTML for rendering performance, and in keeping animations subtle and useful (think iPhone).

Compare CNN to Fox, and see two different approaches to decently-content heavy sites: CNN is mostly text, Fox has lots of Flash. I prefer CNN's site to Fox's, because Fox's use of Flash makes the website hard to understand. I bet you could convert that CNN site to Flex and add a lot to the user experience. Other things like ShareFire, or INSPIRE, you can immediately understand.

What makes the above Flex/Flash/AIR projects good is the User Experience. There are groups of people who want websites to be raw html with just text, like Martin Fowler's Blog (Martin Fowler is basically the King of design patterns, he's one of the main authoritative voices in that arena), which is fine for people like us programmers who just want the information. But I've found that the customer who "just wants a site" or "wants to brand themselves" or "wants software that's easy to use and even fun", are much more pleased with Flex Apps, such as the ones listed above.

Some reasons why Flash was bad

Some bad flash sites

Those are pretty obviously bad :)

I think Gmail should be redone in Flex rather than in Ajax, it'd make it way easier to do custom animations and make changes to the skin, so it would look clean and nice. But Gmail's nice anyways.

You can build anything in Flex, but if you want something like a blog or something with lots of text, it's going to be a decent undertaking as no one has done it really yet; the main problem is optimization. It'll happen soon though. I suggest sticking with HTML and the web frameworks for PHP/Ruby, until one is done for Flex. Unless you want to start making your own! Which would be great! Once there is a "Flex Blog Template", theme designers will go wild and it'll catch right up with WordPress and all that.

Another problem with Flex/Flash is that it can't be viewed on the iPhone. But check this out, it's called Gordon, just released Jan 14, 2010. A crazy javascript hack to view Flash content on the iPhone!. As long as there are creative people helping evolve ActionScript technologies, there'll be some really cool stuff.

viatropos
The INSPIRE link you gave up there is one of the coolest things I've seen done in SWF. Didn't know it could be done.
gio
nice! yeah, me neither! super stoked.
viatropos
Cheez, I would stop using GMail if it was written in Flex.
Ravi Wallau
+1  A: 

Usually I ask myself if I'm doing any of these:

  • Creating complex, interactive, immersive environments.
  • Need a particular effect (but the experience must degrade gracefully w/o Flash)
  • Pixel level control
  • Front-end prototyping

... to think about going with a Flash route.

I primary use Flex not because of it being the "right" technology, but being on the "only" technology able to accomplish some projects. Adobe has made it quite the appealing powerhouse. However, this gets blurrier everyday as several open alternatives (JS libraries) offer fantastic alternatives and the HTML5 spec comes into play.

Rev316
+1  A: 

There's a lot Flex can do where it is the only practical choice. Data visualization comes to my mind in an instant. I don't know of a Javascript library that can do OLAP ops, Flex can -- natively. Flex/Flash apps can communicate peer-to-peer. There's just so much more that Flex has.

This is a good place to start looking: http://code.google.com/search/#q=flex AS3 code can also be written in an object oriented manner using industry standard patterns and architectures (for example Spring Actionscript / Prana framework or frameworks using the MVC pattern), so code maintainability is a big positive for Flex as the dev platform.

However, that doesn't mean Flex is always the best choice. I would evaluate on a project-to-project basis.

Srirangan
+1  A: 

The problem is that people tend to see Flex as a hammer and then everything becomes a nail. I don't think sites should ever be done in Flex except on the rare cases where the contents of the site should be graphical and interactive at the same time, and that is the exception, not the rule. Our company as a Flex application to present charts and, even on that case, I think that part of the application could be done in HTML.

It is an error to create a Flex application otherwise, IMO. It takes longer, it's heavier on the client, it won't be indexed by Google, and it is simply not standard. I mean, you can't get a link on a page and bookmark it, you won't use the browser capabilities to save/ print the page, etc...

So weight your options. If Flex is the best tool for the job and it will not be easier to develop your app in some other way, go for it. Otherwise, don't. There are drawbacks in creating full Flex apps, know your terrain and make the better decision that you can for what you need.

Ravi Wallau
It is possible to create links and bookmarks in Flash: http://www.asual.com/swfaddress/ . It won't happen without effort fromt the developers, but it's still possible. And Google has been indexing Flash for some time now: http://www.adobe.com/devnet/flashplayer/articles/swf_searchability.html. Flash has supported printing for a while now too. I agree that Flash and Flex are responsible for some pretty terrible user experiences, and in the wrong hands they can be deadly, but those tired old complaints about Google, linking, printing, and accessibility simply aren't true anymore.
nerdabilly
A: 

you can't get a link on a page and bookmark it,

I dont agree with this ,

see here and tray to bookmark any video you want ,

http://www.msnbc.msn.com/id/21134540/vp/27892610#31528807

satlol
A: 

Good uses, in no particular order:

  • use in conjunction with Flash (ie you can import Flash swf's into Flex)
  • combine interactivity, animation, audio and video, where the separate items need to talk to each other, like changing a button state when an audio file finishes, or interacting with video while it's playing
  • data visualization, like graphs and charts changing 'live' when data changes
  • AMF data retrieval is quite a bit faster than JSON

Poor uses:

  • quick and dirty text/content. HTML is so much faster for getting these things accomplished
  • being able to view on mobile devices (hello, iPhone?)
  • as a replacement for Flash. This may change when Flash Catalyst comes out of beta, but if you are used to a visual tool like Flash, Flex can be challenging. Depending on the use, you may be better off in Flash.
lelander
A: 

Take a look at ClubPenguin and MyDinos (google either). Using Flash and Flex respectively, the main game is entirely done using them.

John