Adventures in Flex3: Past Flexing
About two years ago I landed a short contract with the Indiana Department of Workforce Development. I don’t know where to access the results from that project anymore (I assume they’re long gone) but it was fun to work on.
Basically, I and a great coworker acting as graphics designer, (Craig made things pretty. I made things work) wrote a front-end visualization to the state’s job-matching web application. It was pretty cool, used animations, visually represented the locations of jobs, whom they were matched to, and jobs and applicants that were most commonly generating matches. It let you view the details of a job as it was matches, and had rolling lists of recently matched job descriptions. All of this was overlaid atop a county map of the state of Indiana. All jobs & applicants using the system had a county data element that let us pin-point where to place the ‘push pin’ for that entity on the map. It was sorta like something off Digg labs, but very specific for our data set and audience.
We did all this in Flex2 using FlexBuilder, and I taught myself enough about Flex and the internals of ActionScript to pull off the project in something like two or three weeks. It was pretty intense, but very fulfilling. After messing around with Flex2 for a few weeks, I had a new appreciation for the crowd that screams, “Java sucks”, and why so many places are starting to incorporate Flash or Flex applications for front-ends. It’s a compelling client technology. A very very compelling client technology.
I won’t go into the details of why I like Flex here. But some of the high-points for my reasons to like Flex are as follows:
- It’s possible to cleanly separate code and layout.
- It’s a real, rich-client (thick-click, RIA, whatever you want to call it) environment. You’re not writing a web-app. You’re writing an application, with a fully functioning component library, that is very cross-platform.
- It doesn’t suck where Java does. Layouts are easy to change / visualize, style, and can be tweaked / changed / altered by graphics designers and programmers.
- It’s support for XML, HTTP I/O, the notion of Bindable object, etc. are so damn compelling it’s not funny.
- You are not constrained by what is possible in a browser, using javascript kludges to interact with a text presentation system hyped up on Mickies.
After we completed our project, I gave a “lunch n’ learn” presentation on the basics for Flex. Included in the talk were a lot of the essentials — where to start, how to get started, event-handling, threading (or the lack thereof in the case of Flex!), and I was overwhelmingly positive about the technology. This was shocking to many of my coworkers in attendance. For years I’ve lamented the misuse of web browsers as client platforms. I had a few of these coworkers nearly pass-out when I told them, “It’s a compelling technology for delivering applications via the web.”
It takes a lot for me to say something like that. And this was before AIR (then project Apollo) was in public beta.
I made a lot of mistakes on this first project. It wasn’t very clean. There’s parts of it I didn’t like then and I hate even more now. But it worked. It did exactly what it was supposed to do. It was (overall) easy to create. Flex and the FlexBuilder tool gave us the power and flexibility we needed to be successful. Above all else the tools got out of our way and let us do our work. I liked Flex. I liked FlexBuilder.
So I figured now would be a good time to take a look at some of my past mistakes with Flex, get a deeper understanding, and learn the techniques to address some of my biggest complaints from my prior project.
It’s been a week or so now, and I’m happy to report that I’ve learned good, solid solutions to what once were my biggest objections.

April 9th, 2009 at 10:09 am
So, have you looked/used Flex3? Has it matured from Flex2 (ie fixed the threading issues) or are they sitting on their hands (ie adding a bunch of fluff that doesn’t actually add substance to their last iteration of the product)? Do you have plans an building another project with Flex3 on the front end and something else on the back end? Inquiring minds want to know!!!
April 15th, 2009 at 8:15 pm
Yes, I’m using Flex3 now.
Yes, it’s matured from Flex2. I do not believe any changes have been made to the threading (or lack thereof) model. The class library is noticeably more rich in Flex3.
I am building a Flex3 front-end / AIR application now. Currently, I’m planning on using PHP for the back end.
April 16th, 2009 at 9:17 am
Yeah, I figured as much from the post that followed this one. Will your Flex3/PHP app be publicly accessible? Will we get a chance to see and play with it when you are done? BTW, what are you using to develop this app? Are you using Adobe’s “Flex Builder” or are you using Eclipse with a Flex plug-in or is there a different/better option out there? Also, are you using an IDE for the PHP side of things, like Komodo or Netbeans? Thanks!
April 17th, 2009 at 2:32 pm
I’m using a good text editor (jEdit) that does syntax highlighting for a multitude of languages, xml validation, and integrates with Ant, which is what I’m using for build scripts.
I tend to hate how heavyweight IDEs are and code-completion makes me want to physically hurt things.
I did like “Flex Builder” when I used it a few years back, but I don’t have the money for a full license, I’m not a student, and I’m not unemployed.
This is not something I plan to make publicly accessible, at least not immediately. It’s more likely that I’ll roll it out to the intended audience, then keep developing it. Eventually it may make it to a public demo with an ASP type model, but that’s shooting for the moon.