This year's Adobe MAX was my first. I picked a good one, it was a record setting MAX, selling out, and beating all previous attendance records.
I have to say, it was a bit overwhelming. I was interested in about three times as many sessions as I was able to attend. But I was able to hit most of the Flex/AIR sessions that looked vaguely technically oriented, and picked up a few sessions on design.
Repeat after me, I am a programmer, not a Designer
On the design front I was particularly interested in the Flex/Creative Suite 3 (CS3) integration points. Adobe seems to think that only designers will be interested in these tools, but we programmers would much prefer to spend a few minutes learning how to edit and export a graphic or Flash asset, than create and maintain hundreds of lines of skinning code and CSS. I think they underestimate the market for good programmer accessible design tools – primary evidence being the Flex graphical layout tool which is not particularly useful for either designers or programmers.
I was particularly impressed with the
Flex plug in/templates for Flash. Not that I know much about
authoring in the Flash tool, but it seems that with the Flex plug in,
a little effort in learning the basics of Flash will be well rewarded
with the almost effortless ability to reskin my entire app with the
the push of a button.
AIR Supply
Adobe is pushing AIR hard. Ebay desktop, and other examples of AIR apps were trotted out at every opportunity. Their makers were well represented among the session presenters. AIR is a very important new tool, and I understand Adobe's desire to promote the hell out of it. They'd love to take market/mind share from MS and Apple. Why learn Xcode and Visual C++/.Net when you can use Adobe's very slick widget toolkits, and get rich desktop integration, on both the Mac and PC with the same code base? Well, Sun lost that very same battle long ago on the desktop, but I think this time around, Adobe might have what it takes.
I am not sure I have much use for AIR at the moment. It is not a programming panacea, and I think you'd have to think long and hard about why you need an AIR app over a Flex app delivered via a web page. Yes, AIR apps have some advantages, offline access/local storage, local DB, desktop integration, funky window borders, native windows, and a few others, but they also have some distinct disadvantages. The #1 thing everybody seems to be forgetting is that they require an installation.
I thought zero footprint install was a virtue – instant startup, automatic updates, you settings are available everywhere. AIR apps give this all up. Well they give up the last one if they store settings locally. Maybe the new features justify giving this up for particular application domains, but certainly not for all.
Let me give you an example. I sat in on an “Inspire” session that recounted the experiences of the design team that delivered the award winning Ebay Desktop application. It's an AIR App, very slick, tightly integrated with Ebay's existing services architecture. It rocks, it truly deserves the accolades it's received.
But, almost everything this application does relies on calls to the back end to fetch auction items, update auction status, etc... At one point somebody noticed this and asked if it had an offline mode. The presenter futzed around with networking a bit, and seemed to have a hard time getting his computer off the network, as WiFi took over when he unplugged the Ethernet cable – he even joked “Man, sometimes it's really hard to get off the network”. Once he succeeded the application displayed a little “Disconnected” icon, and entirely disabled itself. There was literally nothing intelligent the app could do without a network connection.
I find it rather ironic that the most lauded AIR application at MAX had almost zero offline functionality, when this is the one of the most highly touted features of the new AIR platform. “Take your app offline, and synchronize when you have a connection”. Well, it turns out that this is extremely difficult to do well, even with a slick toolkit, and the time will soon come when being “disconnected” will be an exceedingly rare and foreign state. “Man, sometimes it's really hard to get off the network” - indeed, in the future it may be darned near impossible.
BPM can be sexy too
One of my clients has been looking at various BPM frameworks, so I thought I should take in a session on Adobe's Business Process Management (BPM) tools. Unfortunately a technical glitch kept me from getting much out of the session, but I understood the basics. I was mostly interested in Flex integration, but it appears that it is limited to producing little Flex “applets” that can be used for data entry and or analytics as part of work flows constructed in the Live Cycle ES suite.
The primary focus seems to be around the PDF as a means capturing data from the end user, or sending data to the user as custom generated content. The user can define a PDF as a data entry form, apply business rules, approval routings, and mappings to an external database or other persistent storage. The sample we worked through in the class was a PDF leave request form that was routed automagically to the employee's manager.
The design tool is “business oriented” - no, or little code, most things are accomplished by dragging icons onto a canvas and wiring them together with little arrows. You've probably seen something like this before.
These sorts of products are as old as the hills and not nearly as sexy as all of the other new products Adobe has created in the past few years. I was designing workflow processes and business rules in PeopleSoft something like 7 or 8 years ago. But Live Cycle serves an important role in a world where PDFs are increasingly used to capture, store, and transmit data to end users.
Networking
Perhaps I am too much of an introverted geek, but I am always disappointed by the lack of networking opportunities. Sure, I met a few people at lunch, but they worked in entirely different industries. I feel this was a bit of a missed opportunity, but I am not sure what I could have done differently. Oh well. I am sure this is one of the reasons most companies do not trust their programmers to do their marketing for them.
I did miss the
“Birds of a Feather” session, which was probably a much better
networking opportunity than chatting up random folks at lunch, but
unfortunately it was scheduled a bit too late. I live in Chicago,
and had to get home.
Test 123
Many of the Flex sessions I attended went over ground I was already mostly familiar with – the exception being a couple sessions on Ant/FlexUnit and other automated testing tools. It's usually hard to get clients to buy into a significant commitment to up front testing and QA, but FlexUnit makes it easy to test Flex apps, at least the non-graphical components of the application.
That's a rather large caveat. Flex is all about visual experience. I'd say at least 50% of the bugs I fix over the life cycle of an application are related to visual glitches or inconsistencies. If you want to test user interaction with visual components, you will need to either write custom code to interface with Adobe's automation API (so that's what automation.swc does), or buy a third party tool. One of the presenters demonstrated using Mercury's Quick Test Pro to record a user session, and then play it back against a Flex app. QTP has excellent Flex support, but you are stuck recording scripts to a generic “Windows Application” target for AIR apps.
I also learned about “Antenna”, a nice open source Ant based package of templates for building flex applications. Antenna understands flex apps, supports cross project dependencies, and makes up for some of the deficiencies in Ant, such as detecting whether or not source files have changed before compiling. The makers of Antenna have also extended FlexUnit to allow text-based reporting of errors back to a logging server. This allows FlexUnit test cases to be run in batch mode as part of an automated build/test cycle.
Overall MAX '07 was a very worthwhile experience. I came away with quite a few new additions to my bag of tricks, saw some cutting edge examples of Flex/AIR apps, and experienced all the latest and greatest Adobe has to offer.
Comments