Open Source Flash RIA development - case study
After swapping to an open Source flash solution for a RIA, the following advantages were achieved:
- saved over 110 working hours in compile time (that’s crazy stuff!!!)
- integrated into the overall dotnet web application a million times better
- less bugs, tighter code, better code
- better development environment
technorati tags: Flash, FAMES, AMES, Open source
Last year I was working for the Trading Post with a group of five flash developers. The Trading Post is similar to ebay in design but has the bonus of reproducing its ads in print around Australia (The print version is very popular). In other words, when you place an ad on Trading Post you can choose whether it goes online only or online and in the Trading Post print versions.
We were rebuilding a flash application that allowed people to create ads. The flash RIA was called PlaceAd and was a small part of the whole Trading Post rebuild. The rest of the website was also being recoded (C# dotnet). The dotnet team were using NANT (a dotnet version of ant) to build their application and because of the nature of the Flash IDE we were providing pre-compiled swfs for the build. This meant that the build never truly represented the latest flash codebase. It also created an annoying task for us in the flash team to keep on top of what swf was in the build process. Basically in a fully automated process, Flash was the only thing not automated.
The Flash team was full of some very competent people including Dan Webb (that suckerfish guy), Dave Rosen (that xhtmlised guy), David Wyss (a very cluey java programmer) and Nivantha (UI king). We started developing the application with the Flash IDE as normal. However, about a month into the project, the lead flash programmer left and I was put in his place.
The first thing I did as lead programmer was provide a use case for swapping to the FAMES open source flash development environment. (Note: Don’t use FAMES anymore, use AMES). It took one whole day to convert the code base over into the new environment. However the bulk of this work was fixing bugs which the Flash IDE didn’t seem to worry about. MTASC wasn’t as forgiving :). I was confident that using FAMES would save us time and that by using MTASC we would get cleaner code however the big selling point was that we could now integrate PlaceAd into the automatic NANT builds. This meant that when the NANT build was run it would grab the latest flash class files and compile them with MTASC as part of the build. It felt a bit like all of a sudden Flash was now a serious development tool. (Email me for a copy of the NANT files to build swfs.)
So, after convincing management we got the go ahead to install Eclipse and FAMES on the development machines. The other Flash devs were a little wary about such a rash move but when they first compiled the PlaceAd swf in FAMES they were instantly converted. PlaceAd is a big app with lots of classes and business logic. With the Flash IDE it took approximately 20 seconds to compile (on beefy machines). With MTASC it took two seconds!!!!!!!!!!!!!!!!
What does this convert to?:
Four developers, 90 classes, 26 weeks, five days a week, eight hours a day, five times an hour = PlaceAd is compiled 20,800 times (approximately).
At 20 seconds per compile that equals 115 hours waiting with the Flash IDE.
At 2 seconds per compile that equals 11 hours with FAMES.
104 hours saved (That’s over two and a half working weeks).
Apart from the gigantic savings in speed, using FAMES provided a better, more stable PlaceAd. MTASC enforces better code logic and is critical of ambiguous code. The logging provided with FAMES is far superior to the Flash IDE. We were able to tag traces as Error, Fatal, Info etc. This makes debugging a huge application with five developers a hell of a lot easier. And of course using Eclipse is far better than using the Flash IDE (but that wouldn’t be hard). The compare function in Eclipse is so useful when developing in a team environment. We were able to compare a class file against local versions, checked in versions, older versions in SourceSafe to quickly identify what code had changed.
One of the requirements for PlaceAd was to adhere to fairly strict code guidelines. Dave the java guru hacked JavaDoc to make a application that would parse every line of code in every class and made a note if it did not meet coding guidelines. It even provided a ranking system so we could see which class (and class author) was the worst offending. It also checked to see if a function was being used and if it wasn’t it was commented as such and a report made so we could trim the unused classes where necessary. Of course it also provided a complete overview (in html) of the RIA in AsDoc style. Again - all of this was WITHIN the development environment, Eclipse.
Although I have moved on from Trading Post (It was a contract job) they are still using OS Flash and have smartly switched to Subversion instead of SourceSafe. For those Flash developers still toying with the Flash IDE, you really need to consider switching. Its such a superior and professional way to program Flash that once you try it out over an extended period of time you will never go back. Having said that, I would differentiate between Flash programmers and Flash animators at this point. Animators should probably stick with the Flash IDE. To learn more about Open Source Flash check out http://osflash.org/
Notes:
PlaceAd is alive and functioning. Check it out by going here: http://www.tradingpost.com.au/ and clicking on the PlaceAd link. NOTE: because of some dodgy javascript code, it seems that the only way to access PlaceAd from firefox is by following this method: (I no longer work at tradingpost and neither myself or the flash team are responsible for such dodginess
)
- Go to https://www.tradingpost.com.au/MyTradingPost/MyTradingPost.aspx
- Click on PlaceAd
I did not have influence over the interface design for PlaceAd. I find that its not intuitive and that a richer user experience could have been included.
PlaceAd was developed last year. FAMES is no longer the best option for Flash development. Instead I use and encourage other Flash developers to use AMES.
One of the biggest headaches with PlaceAd was using the Macromedia components. They are buggy and bloated. There is a list of open source components here and I have recently created some open source components as well which are very lightweight and skinnable (here).

March 29th, 2006 at 1:30 pm
And of course by using open source flash you save big bucks!
March 29th, 2006 at 7:39 pm
[...] Select a category to filter the posts: All General (135) Rich Internet Applications (18) RIA News (26) Articles (5) Tools and Utilities (9) Flash (55) Flex (6) Design Patterns (2) Usability Design (1) Downloads (4) Flash Ant (2) Bugs & Workarounds (4) Golden Nuggets (6) FLP Maker (1) OpenAMF (1) London MMUG (21) MX Europe (1) Ariaware Optimizer (2) FlashAnt Web Site (1) ActionScript 2 (3) GeSHi Syntax Highlighter for b2 (5) Devices (4) Hands-on tutorials (2) Flash and ActionScript Training (15) Slashdotter High (2) NaturalDocs (3) Moblog (19) Source Control and Project Management (3) Open Source Flash (39) PSP (1) 2006-03-29 Open Source Flash Case Study for TradingPost.com.au [Open Source Flash] - aral @ 09:39:33 - Permalink Andrew Edwards just posted a case study on his team’s experience in using open source Flash tools as part of their development process on the PlaceAd RIA for TradingPost.com.au last year. He mentions how their use of open source tools saved them over 110 hours in compile time, allowed them to integrate better with their overall .Net development process and resulted in fewer bugs, “better code” and a “better development environment”. Andrew and his team were using the FAMES system, which is not fully open source. In the case study he recommends that developers today use the fully open-source AMES system instead (a call that I support fully!) For more information on all things open source Flash, see OSFlash.org. Although Andrew doesn’t mention it in his case study, there is also a new solution emerging for using the Flash IDE as your primary development tool while reaping the benefits of a faster compile time and improved workflow. The two recently released open source projects that make this possible are John Grden’s Flasc, for compiling in the Flash IDE using MTASC and Xavi Beumala’s Alf (Advanced Library for Flash), a library panel extension that allows for filter-as-you-type and the editing of multiple symbol properties. This Alf + Flash IDE + Flasc suite (AFF) allows you to stay in the Flash IDE and yet take advantage of the workflow improvements provided by MTASC and Alf. Add to this setup the non-open source (but non-the-less excellent) gProject and you may just GAFF your next project in your favor Read the full text of Andrew’s case study here. [...]
November 25th, 2006 at 11:59 pm
[...] ae.hugeobject.com ?Blog Archive ?Open Source Flash RIA development - case study: [...]
September 7th, 2007 at 10:49 am
Hi,
It will be nice to mention the name lead flash programmer who architect the system before you guys came on board.