I spent the summer and fall in the Silverlight world and it became apparent to me that the designer and developer worlds are converging. With the emergence of Expression Blend 3 designers visually create XAML using Blend’s States and Properties panels. This XAML can be VERY long and verbose but the results when applied to UI components can be staggering with respect to effects and state changes. In this new world, if you want really expressive states and transitions you need to use a tool (unless your Charles Petzold) and not write it all by hand.
With this worldly collision, the designer needs to know more coding than before and that’s a two-way street in that the the coders need to know more design as well. If you walk through some of the Adobe demos for Flash Catalyst, the designer creates the graphics, application flow, hooks up controls (e.g Button clicks change states) and other things that used to be the domain of the programmer. The coder is left to integrate the backend data. I thought: “Man, I need to learn design or I’ll be out of a profession”.
Both of the Microsoft tools for creating Silverlight applications, Visual Studio and Blend, work off the same code base simultaneously, and when you make changes in one, you are prompted in the other that , indeed, changes have been made and do you want to use them? I found myself with both tools open and switching between them constantly. Its as if Blend became the Visual Studio designer that was the brunt of so much ridicule as it never really was there.
Now I’m back in the Flex world, in particular, Flex 4 whose tools are Flash Builder and Flash Catalyst. Flex 4 makes the huge and necessary change to using “lookless’ controls ala Silverlght where a control’s behavior is separated from its look and feel. This allows for radically different looking things to act similarly because, even though the ‘skin’ (how it looks) may have been greatly changed, the underlying code dictating how it acts is unchanged. Support for tooling (Blend, Flash Catalyst) is a major driving force in this shift.
I wanted to find out what Adobe intended for us to use to create complex skins for components. Simple ones can be hand edited in Flash Builder but anything more complex (and real world) can quickly evolve beyond hand editing and that is where tools are useful.
Enter Flash Catalyst. The current available Beta is version 2 along with Flash Builder (the re-branded Flex Builder). Let’s be fair here and note the word Beta. Rumors are that when released, we will see big changes and I hope so as I was under-impressed at first blush (the usual I’m not a technology vigilante inserted here… I just want to work in both Flex and Silverlight).
After a little on ramp learning, I came up with this hello world workflow:
- create a new project in Calalyst
- place a button on the design surface
- use the different states and the timeline to change the appearance of the Button for various states and add transitions between them.
- preview it in Catalyst to be sure its what you want
- export the project (*.fxp) to my file system
- Open the Flash Builder project that I have been working on and want to use this fancy button in
- import the fxp project into the workspace
- drag the MXML that was produced by Catalyst into my main project
- delete the just created project by importing the .fxp file
- use the Catalyst Button (with its fancy states and transitions) in my main Flex project
Yikes! I found no way to:
- export a skin from catalyst that I could directly import into the Flash Builder project I was working on and then assign it to a Button.
- make changes to that skin in Flash Builder and then go back to Catalyst and work with it from there (so called round-tripping)
- There was no way each application could work off the same code base, in real time.
I’m trying very hard to be fair, but an ace is an ace and I can only take solace in the fact that Adobe is vigorously working on these features and they will be present in the released versions of both products.
One other thing that came to mind is how about letting us import from Fireworks into Catalyst. It seems to me Adobe would have been better off taking one of their existing product (Flash or Fireworks maybe) and morphing that into what they envisioned for Catalyst.
I’m very anxious to see the next product cycle from Adobe. I want to see Flash CS5, Flash Builder and Flash Catalyst all come out feature rich, bug poor and working together seamlessly, but hey, seamlessly is a Microsoft term! – Cheers!