Sunday, August 29, 2010

Is Catalyst CS5 ready for prime time?

At Rule Financial we're still using the traditional tools and workflow to create static and dynamic wireframe mockups for customer projects (i.e. Photoshop, Illustrator and Flash Pro). Since Catalyst CS5 would appear to offer significant productivity improvements over the traditional workflow, I've been spending some time checking out whether it's ready for prime time.

These are some of the issues I found:-

When you add multiple instances of the same Custom Component to the stage:-

a) the "instance" name is automatically set by Catalyst as the same as the class name (MidLevelComponent in my example). This can be confusing since you can't easily tell the difference between a reference to the class and a reference to the instance in the rest of the UI.

b) because the class name is used all the automatically generated "instance" names are identical!!! This can be confusing when you come to add an interaction. For example, the "Choose State" dropdown shows an unhelpful list of instance names, all of which are identical, making it difficult to choose the correct instance. To confuse further the instance names all look like class names since the first letter is in upper case.

Neither of these issues is a problem in a trivial demo type application but in any serious application this will be confusing. The good news is that the code generation engine assign unique instance ids for each custom component instance. The bad news is that the engine appears to use a completely different set of rules for generating the ids. Worse still the generated ids don't follow ActionScript naming conventions either. Instead they're all lower case (e.g. id="customcomponent112", id="customcomponent113").

It would be better if the generated instance names of custom components were the same as the generated ids and if they used the camel case naming convention (i.e  began with a lower case letter).

Since Catalyst's vision is to improve the designer-develop workflow, encouraging designers to use the same naming conventions as developers (instance names that begin with a lowercase letter and class names that begin with a uppercase letter) might be a good idea.

Vote for this feature to be included in the next release of  Flash Catalyst: http://tinyurl.com/2fxcw7z

In the current build of Catalyst CS5 the only way to implement what would be called a "mask" in Flash Pro is to create a rectangular custom component and to turn on "clip to component bounds". Unfortunately this option is only enabled for components with a manually sized bounding box. It would be nice to have support for clipping to component bounds for components with autosized bounds (which is the default for new custom components).

Vote for this feature to be included in the next release of  Flash Catalyst: http://tinyurl.com/22w5pb9

Transitions in Catalyst CS5 support the animation of simple properties but crucially there's no support for the resizing of component instances. This makes it hard to implement zoom-type transitions in UX mockups.

Vote for this feature to be included in the next release of  Flash Catalyst: http://tinyurl.com/2wxvsxp

The concept of an "Optimized Graphic" in Catalyst CS5 is a bit of an odd concept for Flex developers. In reality converting something to an "Optimized Graphic" in Catalyst CS5 appears to create a stateless (or static) component under the hood. Wouldn't it be better to call it by a name that better reflects how the developer sees it such as "Graphic Component", "Stateless Component" or "Static Component" and put its creation in the normal "create component" workflow?

Vote for this feature to be included in the next release of  Flash Catalyst: http://tinyurl.com/2bofvx3