When working on a prototype, you must first define what type of prototype it will be. There are several types, simple static pages that you can just walk through, minimal functioning prototyping which actually has some interaction and logic behind it, even paper prototypes. Now the question of what is the best application to develop a prototype in? Well, you must define your needs and requirements, then define your resources.

It is obviously easier for a Flex developer to create it in Flex. It is easier for a designer to create it a design application and make static or simple clickable prototypes. (i.e. Using Fireworks preview in Browser mode). Flash designer/Developer in Flash and so on.

In this post, I’m going to go over a Flash vs. Flex comparison with a designer who has minimal development knowledge in AS and Flex MXML.

I recently have been working on a rapid prototype for one of our clients. It was a hand off which had over a week into it designed and developed in Flash with some AS 2.0 by another fellow designer.

Flash is great for prototyping, especially for a designer or someone who is not very familiar with coding. You can get by with tweens and simple gotoAndPlay(); & stop(); scripting. As long as you do not need to show what’s under the hood, Flash can provide a very close representation of the final product with not much development. Prototypes are usually done early on, so design is usually not finalized, meaning the designer can do on-the-fly design while creating the prototype. Some prototypes call for some more functionality which you cannot get out of linear design. As of right now, this prototype is pretty hacked together, and if another designer had to go into it, they would be on a code safari. You do get great design, you can make some unique animations, effects, and transitions, but it is not scalable. One slight change request, could cause a major chain reaction. I have stepped up and attempted to built this as dynamically as possible, for I remember the early days of Flash where I was digging 4 levels deep to make changes, or simply redesigning the whole component. This was built a little better than anticipated.

What am I getting at?
Well, is Flash the best for prototyping applications? That’s a pretty relative question. In some cases yes. In this case, where there is more functionality required, dependent and logic driven components, then it is a pain. Also, if your design calls for some type of component that already exist in Flex, then why waste your time.

I sat down with a fellow developer and he recommended doing it in Flex. This was my initial approach as well, but I have limited Flex experience so far. We are on a very tight deadline with this project (when aren’t we?), so making the decision to go into Flex or Flash was more driven by time, my experience and what had already been accomplished in Flash. Although, I did begin in Flex and spent a brief hour and a half laying it out. I learned a lot and especially since one of very talented developers was at my side for guidance.

My beginner knowledge of Flex allowed me to acknowledge that Flex had a lot of what I needed already in the framework. It was a matter of me knowing how to implement it and key thing is make it LOOK GOOD. I am very familiar with skinning, but developing, skinning and fine tuning with minor experience could take some time and reserve my comfort level.

I’ve been in this Flash file for over a week, and it does serve its purpose as a prototype. The only thing is, it does not behave exactly how it should (As I intended), and it took quit a bit of time to code up some of the functionality I needed (bit rusty), when Flex already had it there. If I needed a uniquely skinned component or custom behavior, I could just create that in Flash and make it a Flex component/container and take it from there. You can also export your animations and tweening into AS 3.0 which you can implement into Flex if desired.

My Summary:
I’m making it a point to learn Flex (MXML, AS 3.0) as much as possible to at least get my level up to prototype. I cannot wait until Thermo is released, so I’m going to get into a Flex bootcamp with some fellow developers and see where I can get. The frustrations and struggles I had in Flash were not very pleasing lately; scope issues, slight changes from AS languages, customizing components or behaviors from scratch…etc. Flash does have its place in the industry, but for application development and prototyping, Flex comes out on top in my book. When I start learning Degrafa, that should open some doors and bring design in Flex to a whole other level.