These are the set of tools I use in my daily job ( Flumotion ) and in my projects:
1. Adobe’s Flash Builder Beta ( Standalone or Eclipse plugin )
You have multiple solutions for flex developers some are free ( you can use your notepad and compile the code using command-line instructions ) but for me, the best tool is Adobe’s Flash Builder.
Inside Flash builder you have and amazing set of tools like Flash Debugger and Flash Profiler, and a new addition in the last version, the Network Monitor.
Maybe I should mention FDT, but I had the opportunity to see it in action and Adobe’s tool is still the best.
2. Firebug ( Firefox plugin )
If you are developing a flex application you probably will be developing for web too. For this reason you need a web browser that let you control and monitorize what’s going on. Firefox with firebug plugin will help you with this.
3. Web Developer ( Firefox plugin )
I use this plugin mainly for two purposes. The first one is disable cache ( very important ). Sometimes when you are developing for web you realize you’ve been testing a cached application for 5 minutes ( or more ), or you must clean the cache every time you want to test some change, this option will avoid this common problem and will help you saving some time. Another interesting option is resize, which let you resize the browser to custom sizes.
This plugin have another options I don’t use.
4. Monster Debugger ( AIR application )
Monster Debugger is an interesting tool for remote debugging. You can print messages remotely and this messages can not only be strings but objects.
Note: I’m currently using Monster Debugger but from my point of view the best practice would be ( and will be ) remote debugging.
5. Charles ( Standalone application )
Are you working with the AMF format? ok, if you are a firefox user, if you try to see what’s going on in the AMF communication to server you won’t be able to see anything because it’s in a binary raw format. ( OK, maybe you’ll see the name of the method ) I didn’t find any firebug plugin to deserialize this, but I found a cool and cheap application called Charles. This application monitorizes all the http/https requests from my computer and deserializes all AMF requests if any.
6. Flex Formatter ( Eclipse plugin )
If in your development team there’s more than one developer the code tends to be a mess in terms of coding conventions ( every developer has it’s own criteria! ). With this tool you’ll be able to establish a set of rules for different aspects of the code ( inline / newline brackets, spaces after / before parenthesis, etc… ) You can export this settings to other machines / developer’s too.
Note: If you hire a freelance you can pass the set of rules to him/ her to ensure the code follows the company coding convention guidelines once he / she finishes the job
7. Adobe Flex PMD ( Java classes, runs with Ant, Automator and command-line )
Finally, a new tool I’m investigating and it’s already giving me some results. Flex PMD is a set of java scripts that examines your code and tells you which part of the code can be improved.
8. Alchemy ( Standalone application )
Sometimes you can have a good product, but you always can do it better. Alchemy is the tool to achieve this, by converting C and C++ code into a valid Flash code. You must know you cannot do anything you wouldn’t be able to do directly in Flash. The generated code it’s faster than Flash Builder’s compiler generated code.
9. Pixel Bender ( Standalone application )
The same way alchemy can help you optimizing code, Pixel Bender can help you optimizing mathematical operations. Pixel Bender runs in a different thread than Flash Player, for this reason you can accelerate logic calculations using this software.
10. Adobe Flash Catalyst Beta ( Standalone application )
From my point of view is still a not fully formed tool in terms of optimization, but keep an eye on it because this tool establishes a very thin but strong line between the designer and the developer.
I hope this post help you improving your development!
P.S: If you know another wonderful tools, please tell me!