360|Flex: Day 3

by Thomas Brady

Day 3. Seems like a week ago. It was the day before yesterday. It ended with racing to an airport and failing to write this post, but I’m getting ahead of myself.

I saw Jason Hanson do a deep dive into Flex 4.5 mobile item renderers. Tons of great advice for optimizing the hell out of your item renderers; advice I’m sure will be just as useful in desktop development. There was a mix of explanation of new features, general tips (i.e. don’t put conditional statements in a constructor), workflow recommendations (FXG is a nice file-format because it’s pretty optimized, and it round-trips well from most Adobe tools), lifecycle explanation, and even some obscure nits (TextField’s unadvertised, in-built 2-pixel top and bottom padding).

After lunch I caught Narciso “nj” Jaramillo’s presentation Multi-Density and Multi-Platform Application Development. This was the session that made me gut-check. “Did somebody drug me?” I have made no bones about doubting Adobe’s abilities, motives and plenty else on this blog. Sometimes I feel pretty ungrateful for it. I have been making a living using solely Adobe software for about 7 years, now. This session demonstrated what many call the Holy Grail of development - the thing that Java promised all those years ago: write once, run everywhere. Java certainly does run lots and lots of places, but it sure is hard to write a nice display layer for it. Swing? More like polka.

But there I was, watching nj writing dynamic code, taking advantage of smart APIs and compilers, and building an app that ran on iPhones, Android phones, Android tablets, and iPads at all kinds of resolutions and pixel densities and even device orientations. And it didn’t just look like the same app, stretched and squeezed to fit. It looked like custom-built apps for each platform. And it performed well.

I wouldn’t believe it if I hadn’t seen it with my own two eyes. I look forward to proving it to myself again with the pre-release sneak copy of Flash Builder 4.5 they gave us at the conference.

Next Jeff Roberts gave a run-through of Swiz, Parsley and Robot Legs - the three leading Inversion of Control micro-frameworks for Flex. It was good to feel caught up on this concept. I think I’m going to give Robot Legs a go on my next project, and only partly because the stickers they passed out were the coolest.

Finally, they wasted our time for about an hour. A speaker - whom I will not call out by naming - got up and explained why Flex and Flash are still relevant in the face of HTML 5. Not all of his arguments were terrible. Some were insightful. For instance, I had not considered the fact that while HTML will always be an inherently semantic markup language, Flex will never be. Then there were the typical reasonable arguments (browser differences, handling of video, monetization, accessibility, SEO, etc.).

Two arguments that made me want to shout something terrible at him: 

  1. CSS 3 animation code is very difficult to read/write. This is a valid point if you’re stopping there, but he didn’t. He went on to say that Actionscript was great to read. This is also true. But he’s comparing and apple and an umbrella. CSS 3 is - in terms of authoring content for the browser - about as close to byte code as you’re going to get. If you were comparing Actionscript to javascript, that would be fair. Or if you compared Flex to jQuery. But you can’t compare CSS and Actionscript. They’re not the same kind of language in the least. That’s wasted breath.
  2. Flex has a superior developer community - possible superior to any other language. “You just don’t see communities like this, or events like this one for HTML developers.” Really? Ever heard of An Event Apart? There are plenty more, but that group alone would make it worth your while to be an HTML developer.

And that was it. The booths were gone. No one was offering me free BlackBerry anythings. It was over. I dashed to the airport, and was soon playing Sword & Sworcery.