First, let me restate something: I am a strong promoter in Flash, but after some weeks of usage, I am still wondering why it does not match my expectations in terms of productivity. It seems that I am taking too much time for doing simple task. Why?
Here is a few of the points that Iâ€™ve identified:
- Lack of UI toolbox
- An application is not â€œlinearâ€
The biggest issue, especially for me, is that I spent too much time on things that are not my core competency: graphics! When trying to create user interface using Flash,there is no toolkit to create common UI element, like button, menus, etc…. I know, it must be easy to develop them using Flash, but mine really look crap, and then I have to spent a big amount of time with things that I do not deal usually; create nice looking button, put everything in place to do a scrollbar, etc…
So what is really missing, for me, is a toolbox of usual UI component (menu, buttons, textbox, checkbox, etc…) that just can be drag-dropped on the screen, and easily manipulated, eventually customized, as well some common “effect” that could enhance the UI.
The weakness here, it’s that its ‘too’ open, you have to create everything from scratch. You have to deal with concept that I usually do not care about, to understand the philosophy of Flash: all the tools, layer, etc…usefull for designer, totally not needed for me. I hope that market will mature, and some people (Adobe?) will provide such common toolkit, as well as some “skins” for these toolkits, still providing the ability to create everything from scratch. In fact, Iâ€™ve just realized that Flash is a low level graphic vector engine, and not an high level UI engine.
Your application is presented through the “timeline”, on the editor. It shows, in a linear way, the various frame that correspond to your application. But an application is not linear like this: you go from one screen to the other, from main screen to parameters, back to main screen, then go to another one, etc… So, the ActionScript code is full of â€œgotoâ€â€¦The exact same goto that has been banned decades ago from high level programming is back in Flash.â€¦
The stage view in Flash: all linear
The Flow design view in Netbeans: flow oriented
(I don’t think that NetBeans is better than Flash, but it’s just my understanding of what could be an higher level view of an application logic)
- Where is the â€œdeveloperâ€™s viewâ€ in Flash?
The other weakness, it’s that it’s not a developer environment. It’s really a nightmare to figure out where is your code. The window is too small, very few feedback. ECMA script is not a so bad language, it’s not very fast, for sure, but it’s especially the lack of “developer orientation” which is a big problem in Flash8…
So, what is the solution? I would like to see a tool, may be using Flash as a low level technology that would allows me to focus on rapid prototyping, providing me predefined but customizable element. I would like to see a clear separation between code, and UI design and elements…And may be some higher level abstraction, like the one proposed by Netbeans…
I might be missing some important point, like the right tools, widget sets, etc…so please, if there are some developer who now some of them, I would be happy to test them….