
For my recent presentation on the Gaia Framework for Adobe Flash, I chose to steer away from my usual FlashDevelop editor to use FDT.
Since I never code in Flash IDE anymore, and that I use FlashDevelop daily, in this review of FDT I shall present a view that’s unique by comparing the two. I am no Flex developer and chances to use MXML is far in between, so this review will also be focused on using FDT to code ActionScript.
After using the Gaia Framework to generate the core files for me, importing them into a new project in the workspace was pretty easy.
Flash Explorer (Pane) -> Right Click -> Import… -> General -> File System
It took me a while to understand that I have to set the “Source Folder” for the codes to parse.
Flash Explorer (Pane) -> Right Click on folder -> Source Folder -> Add to Classpath
Right after parsing the codes, the “Problems” pane became full of warnings (400+ to be exact). While I think it’s very useful to know about warnings and errors, showing me all the warnings found in the Gaia Framework and TweenLite were too much for me. If my code has a warning now, I will probably not notice since I’m never going to sieve through all those warnings to find mine.
It’ll be better if there’s a function to NOT SHOW the warnings from certain packages/classes.
[UPDATE 2: As highlighted by Maxim, Eclipse has a filter mechanism (Configure the filters to be applied to this view) for the "Problems" View (upper right corner of the view).]
This way, we don’t have to sieve through codes that have warnings that were not written by us in the first place.
What’s good however, is that errors are made known to me while I’m typing, and I can immediate correct it. This is invaluable and something that FlashDevelop doesn’t provide. Solid feature.
While both FlashDevelop and FDT provide the “Tasks” pane to keep track of TODOs, FDT shines better as it provides checkboxes, and allows you to prioritise your tasks.
(Ctrl+Space)
I’ve learnt to code so much faster with snippets in FlashDevelop that I tend to reject any editor without this type of feature. I’m glad that FDT provides a similar feature called Templates.
Windows -> Preferences -> FDT -> Editor -> Templates
It makes me a happier person that FDT’s templates are even more robust, in that you can set variables in place so that when you generate it, it lets you go through and change each variable via a tab process.
(Ctrl+Shift+R)
I love this feature in eclipse, and since FDT is built into eclipse, I’m happy to be able to use this feature again. FlashDevelop does not have this type of feature which makes finding files on large projects a hazard.
However, if the resource that I found and opened is a .fla file, the IDE tries to open it in eclipse itself, which of course, is undesirable. I’m not sure if FDT is able to do anything to change that, but will definitely make this feature stand out even more if it opens up in Flash IDE instead. Another work around is filtering out .fla files altogether. The former is definitely better.
[UPDATE 3: Even though editing this does not affect Open Resource, it is still good to know. Maxim mentioned that you can open .fla files in Flash IDE from FDT.]
Window -> Preferences -> FDT -> Tools -> Flash -> Flash IDE
Both features, namely “Rename” and “Move” of refactoring are great. I can rename variables and move them from one package to another, and it automatically updates all references. Very awesome. Given the fact that FlashDevelop does not have something like that, it makes FDT stand out even more.
(Ctrl+O)
There are so much use cases for this one because it’s so useful. All I have to do is to press the shortcut, and I can select what I’m looking for, and will be brought to the location. This is something that I wished FlashDevelop has without me needing to go through my codes, or worse, someone else’s.
(Ctrl+T)
This feature is a worthy mention. In FlashDevelop, I often find myself looking up classes and their ancestors by hitting F4 multiple times. In order to check a certain class ancestry, depending on the situation, I might have to do these quite a number of times. It’s convenient, but once it spans over a few classes, the process becomes cumbersome.
The “Type Hierarchy” feature on the other hand, brings up the entire ancestry and in a single glance, I can see if the class inherits from another certain class. This saves me a fair amount of time from opening those extraneous files.
(Ctrl+Space)
While the Code Assist feature is great, it is a hassle to use. It only comes up whenever I hit the shortcut, which slows me down considerably. I was not able to find a way to make Code Assist come up as soon as I type something, unlike FlashDevelop, which has this as its default behaviour.
[UPDATE 4: Find how to boost your code assist!]
(Ctrl+1)
Unless it’s not known to me, FlashDevelop does better in this area. In FlashDevelop I was able to generate functions (including getters and setters), implement interfaces and promote variables, all by using a single shortcut. I was not able to find such a feature in FDT.
[UPDATE 1: After a hint by Kris, I played around and managed to find the shortcut to perform contextual code generation in FDT is Ctrl+1. It was however, still not as good as FlashDevelop in my opinion, since I was not able to implement interfaces with this shortcut.
A particular note to generate functions is that you have to end off the variable with parenthesis before it will work for functions.]
[UPDATE 2: Maxim pointed out to me that the "Quick Assist" function (Ctrl+1), is able to implement interfaces too. Read his full comment on it.
]
(Ctrl+Shift+F)
I adore the details that FDT allows me to customise the way to auto format my codes. For the first time, if I’m taking over someone else’s project, I can simply hit the shortcut, and dirty formatting are instantly cleaned to the way I like it. Set your preferences in:
Window -> Preferences -> FDT -> Code Style -> Formatter
Not something that I view as important, FDT is able to view what classes are inside an SWC, and generates a class with its methods and variables for a detailed look. SWC browsing takes other people packaged code to a view that’s neater and easier to refer.
FlashDevelop on the other hand, even offers you to see an overview of the classes used in both SWF and SWC, although there’s no generated source to peek.
Love the fact that FDT is able to work in both Windows and Mac OS environments. As FlashDevelop uses the Microsoft .NET 2.0 framework, it can only run in Windows.
The price is possibly the biggest hold back for me, since FlashDevelop is free to use.