views:

367

answers:

15

Hi,

the company I work for has a web-based user interface which paying clients log in to to get access to data and control mechanisms.

We're planning to launch a completely new version of this interface, and one option we're considering is whether to build it in Flash.

The argument for using Flash is that it would enable us to build a really innovative, engaging interface.

My worries about this are:

  1. None of the developers currently know anything much about Flash.
  2. It seems to me like it will make maintaining the system harder (the current incarnation is built using PHP / HTML / JavaScript / AJAX).
  3. I don't know enough about Flash to be able to estimate what impact it will have on initial development or on maintenance.
  4. I fear it will worsen the user experience -- slow download times, for one thing, and it won't work at all for people who don't have Flash installed.
  5. It feels like overkill. We want to show some pretty graphs, which I think we should build using something like Fusion Charts, but otherwise it will just be fairly straightforwad text and graphics. It feels like we'd be in danger of adding pizzazz just for the sake of it, because we can.

Anyone have any thoughts on this? I'm not asking about public web sites, but is Flash a good idea for an online user interface?

Incidentally, I know very little about Flash, so I apologise if I've made any horrifically wrong assumptions here!

Thanks,

Ben

+3  A: 

If you don't mind bad SEO. I'd say if the developers don't know much about Flash and are unaware of it's implications then steer clear of it unless you were going to use it for a practical and legitimate reason.

Evernoob
+11  A: 

You will be doing yourself a huge disservice by creating an administrative tool purely in flash. As you said, it will be complete overkill. You will be pulling your hair out in no time (especially if your developers know nothing about flash) and only for the sake of making it look "flashy." Also, if your devs aren't skilled in flash, you run the risk of making a cheesy UI, making a buggy UI, and going waaay overbudget in learning how to use the timelines and such. Flash is great in small doses and possibly for large-budget websites with many viewers (see nike), but if you're just building an admin tool, stick with PHP/.NET/whatever and good ol' HTML/CSS.

Jason
Just a quick note on this answer, while I agree with the conclusion, it's been at least five years since developers used timelines to build Flash applications. ActionScript 3 is a strongly-typed, full-featured, object-oriented programming language that can both help and hinder application development - but the notion of putting functionality on keyframes is no longer valid.
Luke Bayes
fair enough. however, i feel like inexperienced devs (like the one the OP mentioned) will prob not jump right into the actionscript and prob try to use the keyframes, which will eat up SOO much time
Jason
+2  A: 

I would stick to what you know. YOu can still make things pretty flashy with html, css and a reliable Javascript Framework/Library (of which there are plenty).

If you MUST do it in flash based technology, i would use FLEX over flash. Flex would actually be very useful knowledge to a developer, and given that its developer aimed, learning it shouldn't be a big deal.

Zoidberg
+3  A: 

Flash needs a plug in right? It drives me bonkers when I get a 'click here to install x to view the content on the page', or 'this page is trying to run x do you want to allow it'.

Will you be able to get your customers to use a modern browser that is correctly set up for the content?

Personally, I'd use something that happens server side and/or works in a default browser.

Matt
+1  A: 

Flash is better suited for presenting audio/visual content. If you are designing a user interface, you can create some visually appealing effects using CSS and AJAX which have both come a long way.

Also, it's much easier to debug and deploy a quick fix with your original approach.

James
+2  A: 

Unless there is a very clear reason for using Flash (and it doesn't sound like there is), then don't. Especially if you and your team don't know it.

If Flash user interfaces were any good, there would be a proliferation of them on the Internet; there really aren't that many.

DanSingerman
+6  A: 

In my experience, it's okay to use Flash within a web site, such as to display pretty-looking Fusion Charts (like you said), but entire sites written in Flash tend to be terrible. For more:

http://stackoverflow.com/questions/510010/what-is-so-evil-about-flash-based-website http://stackoverflow.com/questions/52140/what-are-the-technical-pros-and-cons-of-flash-vs-ajax-js

Also, seconding other answers posted so far (@Matt, @James, @Zoidberg, and @Jason in particular).

Matt Ball
+2  A: 

Personally, I have had a bad experience with Flash. A few years back we used to make flash interfaces for almost all of our sites (Nothing is better than Flash to add dazzle to your work). However, with time we came to the realization that Flash looked cool to us as developers and designers - most of our users would get bored of the dazzle within a few visits - and at this point the dazzle only made the interface LESS usable. Combined with slow download times and users who had to go through a plugin installation process before they could even view the homepage made us decide in favor of Javascript / JQuery.

Crimson
+4  A: 

Please don't use flash for this.

If you're looking to make an "innovative, engaging interface", the right tools for this are HTML, CSS, and jQuery. You can make some very nice, very usable interfaces that are easily maintainable and accessible.

Here are some usability ideas to consider:

  • If you need some eye candy, try jQuery UI. You can get draggable windows, animated transitions, and other neat effects. A little bit of this goes a long way.
  • Use autocomplete boxes to speed up selecting from large sets of data
  • Generate complex charts and graphs server-side, and load them with ajax. Precompute them if possible to improve response time.
Christian Oudard
+1  A: 

It depends.

A few years ago, I was technical lead on a year long project to create a "builder" website that allowed clients to configure and deploy their own interactive websites. Being a very marketing-oriented company, we had a large number of skilled Flash developers in addition to the Perl developers who did the more down-and-dirty programming work. The tool in which a client would intially configured and deploy his website (selecting there, color, etc) was in Flash/Flex and I think that was the right choice. It would have been very difficult to have such a rich, compelling experience using Ajax and the interactions it had with our Perl/Java backend were fairly limited to asset retrieval, a JSON-based HTTP requests, and at the end emitting an XML-based configurational file for the site. That said, we used existing Flash developers to do the work and in many cases we were stretching them beyond their comfort zones as the app had a lot of complexity that was atypical (at least at the time) for Flash applications. This had a large number of ramifications in terms of schedule and the quality of the code that was produced.

Once a user's site was deployed, users could log into a "databank" which allowed them to view and download demographic data, along with various reports/charts, etc. Initially we wrote this in JSP/Ajax etc but was ultimately migrated to a Flash/Flex based framework. In this case, I think the move was a poor choice. It did give it a much slicker look, but it ended up being much more heavyweight and troublesome to maintain. I think a lot of what we achieved by moving it over could have been done with things like jQuery.

Most of the drawbacks you've mentioned above I think are very valid concerns that did prove out on our project. The Flash/Flex based databank did take a fair bit longer to download, it tended to be more difficult to maintain, and I don't know that the pizzazz it added ended up really being "worth it".

One mistake I made was that I largely delegated the Flash work to Flash programmers, with insufficient oversight on my part. Those who tend to have skills in Flash tend not to have as rigorous a CS background (not saying this is always the case) and so lacked the same kinds of estimation skills and logically thought process required for things requiring more complex coding and parsing logic. The best thing I did was push to have one of the Perl developers learn Flex and add him to the Flash team, which introduced a bit more rigor into what that team was doing (including lookings at thigns like FlexUnit, etc).

Zac
+2  A: 

I don't know anything about Flash -- I came to this question hoping to learn a little -- but I was struck by your comment about "adding pizzazz just for the sake of it, because we can". I think a lot of web developers make those twin mistakes, (a) adding pizzazz just for the sake of pizzazz; and (b) doing something complicated or fancy because it is fun to do rather than because it serves a useful purpose.

IMHO, many web sites are way too fancy. They have all sorts of animations and complicated interfaces that just make the site distracting, hard to read, and hard to figure out how to use. Personally, I prefer a simple, clean site that shows me what I want to know. When, for example, I go to my bank's web site, I want to see my balance and what checks have cleared. I'm not interested in seeing a sophisticated animation about the bank with cool dancing graphics. Those things just make it slower and distract from what I want to see.

A few years ago I built a web site for an organization I worked for at the time, and one of their officers said that he wanted it to be flashier. For starters, he said, the main page should have a video that automatically starts up with all sorts of flashy graphics, a spinning 3D logo that fades into a picture of the building etc etc. To demonstrate what he had in mind, he went to the computer and brought up a web site that had a fancy video like that. He let it play for a few seconds and then closed the browser window to kill it. "Wait," I said, "Why did you stop it?" "Well," he replied, "It's a lot of advertising for their company. I didn't want to sit through the whole video." "Exactly," I said. "And neither will any of OUR visitors."

Maybe other people are different than me. Maybe they'll really think your site is better if there's an animated logo at the top of the screen and shifting background colors and all that stuff. I wonder if anyone's ever done a study on this. Do sites with lots of sophisticated graphics get more visitors than sites that just plainly present their information? Hmm, I think it would be interesting to create two web sites with identical information, but one is just plain text with emphasis on formatting for maximum readability, while the other has all sorts of animations and pretty colors and the like, and see which gets more visitors.

Jay
+1  A: 

Sure it is likely to be overkill, complicated, poor SEO, etc, etc and a PITA, but you could always do a quick trial-run, perhaps just to prove the point to the company decision makers!

andora
+4  A: 

I am sure you would have read this http://www.joelonsoftware.com/articles/fog0000000069.html

Why do you want to rewrite the entire code again and that too when the programmers are new to that technology. As far as i think technology is just the medium, how you use it is more important.And 'how you use it', you will only come to know when you are very well experienced with it.

As far as using Charts, you can easily use FusionCharts with or without knowing Flash.I have just used them in one of our products.Its pretty straight forward to use with xml (and i donot know Flash)

Rajat
+1  A: 

I think it fully dependent on what type of image you are trying to convey. For instance, Flash would be a perfect fit for a High end video game website, where you can log in, see screen shots, videos, stats, and change some administrative account settings. But if it is for checking information, or logging in to see word docs and pdfs, it might be a little too much, --- partly due to flash runs so very hot in ram, and is very very slow in raw computations, and to top it off with any type of media the swf (compiled actionscript file) can get huge! - and depending on your target audience, you might not want to rely that your viewer has a 'top of the line computer' and fast internet.

Also security is important also, be sure to never rely on flash to do anything important / or without having it checked by an outside language, for instance a server-side language like php, java, asp, etc.etc... Flash files can easly be picked apart and they can see in plain text almost exactly what you type.

google and the other big search engines now are have claimed that they are indexing text within flash websites now, which I personally call BS on... so SOE is non existent in regards to the swf embedded file.


but to its credit,

actionscript as a language is fairly easy to pick-up

and also flash has a penetration of over 75% (last time I checked)... if one can watch a youtube video, they can view your website.

it displays correctly (well most of the time) regardless of browser and OS... which one is hard pressed to find in many other web languages.

and it looks really nice, allows for good amounts of animations and media, and also has a high degree of interactivity.

-Hope this helps! and good luck!

A: 

As many have already pointed out, don't use Flash if u really must... And going for flex just because it is developer friendly is not good either as flex swfs are bigger and hence slower to download.

Amarghosh