Flash Catalyst enables designers to increase their creative productivity and leverage their existing skills to create a stand-alone Flex application. It also facilitates collaborating in a team when creating Flex applications. Designers can create their graphics using Adobe Photoshop CS4, Illustrator CS4, or Adobe Fireworks CS4, and then convert these graphics into a Flex application by importing the native files into Catalyst, while keeping the layers intact. Catalyst acts as a bridge between Flex Builder and CS4.
This is all great, but as a developer you shouldn’t wait for designers to adopt to Catalyst and you can leverage Catalyst today.
In this post, I would like to talk about integration and workflow between Flash Catalyst and Flex working with Catalyst as a developer tool. This blog post is based on my experience working with Catalyst and is based on creating production grade applications. I believe that Flash Catalyst is a valuable tool and once you get to work with it and utilize it well, you will find it hard to work without it, mainly since it will save you valuable development time.
While Flash Catalyst got great reviews by many people since it was released as Beta, I also hear criticism in the Flex community about the tool and I would like to touch that before we diving into workflow tips.
This is the image from the T-Shirt given to participants during FlashCamp San Francisco this year:

I am not sure if Flash Catalyst is really a gift to the designer?! Remember that old TV show Smurfs:

I think that the source of the criticism is because of the following reasons:
- Catalyst was labeled as a designer tool - Adobe put a label on Flash Catalyst and categorized the tool as a designer tool. Even the t-shirt in the above picture (from Adobe’s San Francisco Flash Camp event) labeled the product for designers, and not just designers, but female designers! We see the same on the Catalyst site (http://labs.adobe.com/technologies/flashcatalyst/) where you have a male developer on one side and female on the other side. I have to tell you, I have a lot of designer friends that are male and they are as talented and as capable as female designers. I personally believe that Adobe should release the product without putting any labels on who should use it.
- High expectations - Adobe’s Marketing department has portrayed the product as if it allows seamless and effortless round tripping integration between CS4 and Flex, when in reality the round trip is not as seamless as described. Lower your expectations before using the tool.
- Designer? tough pitch! - it’s a hard to tell designers “look, I will give you this amazing tool that will add work for you”. Designers are busy just as much as developers and many are not going to be as thrilled to adopt to a new tool that will require them to put more time and add them more responsibilities.
- Adoption - designers adopting the technology may take a year or two since although it’s similar to other design products, there is still a learning curve and round tripping should be improved for better integration.
Who feels the pain? Designers or developers?
When it comes to skinning, interactivity and converting pixels to code, I believe that developers are feeling the pain much more than designers, since every time they need to skin a component or create interactivity, coding in Flex 3 is a tedious process and not easy unless you do it on a regular basis. Sure, designers feel the pain when their work is degraded during translation of graphics to code, but it’s usually solved by going over the work with the developer and adjusting the pixels.

Developers can benefits from using Catalyst:
How you can leverage Flash Catalyst as a developer:
Create your view in Catalyst and integrate it using the presentation model
Before using Catalyst you would get a comp from a designer and convert it into code. That process, at least to me, was a painful process that I always hated since I have to bother myself with tweaking CSS files and creating custom components which takes a lot of effort on complex components. With Catalyst you can import Illustrator / Photoshop files to Catalyst without opening CS products. I found that the best approach is to identify the different views you would like to break your application into components instead of trying to create one application. When you create an application you usually break your views to different components and I would do the same with Catalyst. What I mean is that you would figure out how you would like to split your view and create Catalyst projects based on that.
Your assumption should be that you will have to change the Catalyst’s code and adjust it instead of assuming that the code Catalyst will spit out will be production grade code. Once you completed your work with Catalyst you can import, the FXP (Flash XML Project) file into Flash Builder and separate the ‘view’ from the ‘logic’ using the presentation model (similar to code behind) design pattern. There are many presentation model approaches, but the key is to have a ‘clean’ code that doesn’t have functionality so you can easily make changes to the view and follow Flex 4 and Catalyst architecture of separating pixels from the plumbing. You would import it as it’s own project and copy paste the classes you need while refactoring the location and names, as well as changing the generated code so it’s more readable.
Skin component
Another useful technique I found with Flash Catalyst is to skin components or at least create the scaffolding to skin components. For instance if you want to skin a button, sure you can code the class and states from scratch, but it will be done faster with Catalyst. Using Catalyst you can easily take an Illustrator file and convert a pixel to a button or any of the available components in Catalyst as well as create the states and interactivity which will save you time as well as generate FXG when available. FC also uses optimization techniques when possible, such as package pixels in a SWF.
Using the FXG rather than images can give you a much better crisp look to your applications, not to mention decrease the size of your SWFs (if image embedded) or increase performance since the FP10 drawing API is faster than loading external images during run-time.

Create interactivity scaffolding
I used Catalyst many times to create simple wire framing for interactivity. For instance, let’s say you have three components that you want to create animation (states) on certain user gesture, you can create boxed using Rectangle and convert them into ‘Custom / Generic Component’ then add the different states and interactivity. Export the project as FXP and then use the files as the scaffolding in Flash Builder and replace the custom component with the real component.

Designers and developers can work in parallel
The designer can create the pixel and adjust the pixel as you need to make changes. So while you will be the one converting the pixel into code, you can work with the designer to make changes as you need them. For instance, you may notice that adding a shade to a vector graphic in Illustrator will convert the graphic into an image in Catalyst that doesn’t happens all the time but in certain cases, so you can work with the designer and have these images adjusted so they can turn into FXG code. As you work with the designer you can show him/her how you are working with Catalyst so the designer can slowly take over some of Catalyst work when he/she is ready.
I am sure that as Catalyst rolls out of Beta the round tripping and integration with FB4 will be easier, meanwhile have fun and enjoy the tool when you can.
Cheers, Elad Elrom



















Flash Catalyst is definitely is one of the greatest Adobe developers ideas right now. What so cool is that now designer don’t think on what flasher can or can’t. We just create it’s awesome design and move it to flasher to work on further.
Thanks for the post!
As a designer, I work with Elad and have had some hands on experience with FC..(I’ll be cool and call it ‘FC’) From what I see it is basically a glorified Plug In for the other Adobe programs… We’ve found some issues when transitioning a Photoshop or Illustrator.. Little annoying things that the developer had to find in the code and the designer had to figure out what to do to fix it in the graphic file…
I understand by making this a separate plug in for each adobe program would be unfeasible..what with overloading an already bloated set of programs that love to gang-rape the processor especially when more than one is open….
But instead of making a blanket set of tools that KIND OF correspond to PS or Ai (again…shortening names is cool) maybe based on what type of graphics file you import into catalyst… the exact tools from that program will be used. Maybe only major tools… and on top of that have all the interactive component making tools….
Personally I don’t want to have to learn a whole new program that is basically an interactive mock-maker…. By loading up the design with labels and such.. it makes MORE work for the developer who has to clean out your design so he/she can elegantly remake it in code anyway… which from what I remember is kinda what they’ve been doing for years….
I keep reminding myself that this is Beta software. I have to believe that Adobe wouldn’t give the program to anyone, as is, for production. I haven’t had the luxury of having a developer who could give any input or feedback into the actual real-life integration vs. Adobe planned workflow integration. What I do love, however, is the potential that this program brings. I also keep reminding myself that this is only a 1.0 launch. Photoshop used to be as well, and look how far it has come since then. Short term, FC (so I can be as cool as you!) is impressive, but not a game changer. Long term, I think this *could* be amazing for the Design/Dev workflow. I am encouraged that Adobe takes user feedback pretty seriously and I hope that they read your post. It’s very insightful for this point in product development.
these comments are hilarious
Hi,
I’ve just rolled out an alpha version of a tool designed to greatly simplify the exchanges between Flash Catalyst and Flash Builder. It acts as an external synchronization tool between the two of them:
http://www.flexstuff.co.uk/applications/catalystbuildersync/
I thought you might be interested,
Cheers,
Gilles
The code which fc spits out atm is far from organized in contrary what Adobe says. And no one have anny complaints about the file-size increment?
To get integrated with the use of the tool and skinned a plain video player. The result was 10 times bigger in file size then it’s plain-old flash “competitor”. Sure the tool isn’t created to do just these small and simple things though it raises questions on larger projects to…
But as mentioned before it’s still beta! And I keep my hopes up this will be a great tool! Though imho more to the developer then the designer side, nontheless what Adobe promotes.