This was my second MAX and, let me tell you, I enjoyed it a lot more than last year’s one. This was an intriguing event with lots of interesting news, and promises of new releases.
Being in Los Angeles added some coolness to MAX as everyone there has the same goal: to run into a celebrity in restaurant, store, on the street… somewhere. It’s Hollywood, you know… Sure enough, I ran into couple of celebrities and even shook hands with them: Ely Greenfield and Ted Patrick. Who’s bigger than them in Flex community? I mean among those who’re in the know.
But let’s get back to business. The breaking news goes first.
Flash Player 10.1
Flash Player 10.1 is THE news of MAX 2009. During the keynote, Kevin Lynch (OK, Okay – he’s also a celebrity) has demonstrated serious performance improvements and modest battery consumption by this VM. Right at this moment I felt how four thousand hands, in the dark, pulled out their iPhones (the rest of attendees were carrying free Blackberries of their employers). The tension in the air reached its climax as Kevin announced that with Flash Player 10.1 smooth rendering of a 3-hour movie on smart phones became a reality.
But when he said that Adobe had an agreement regarding Flash Player 10.1 with 19 out of 20 major producers of mobile devices, four thousand iPhones were returned back into pockets, purses and other belt holders. No, not this year. Apple doesn’t want to lose control over the distribution channels of applications for iPhone, and by not letting Flash Payer in the iPhone browser they are not letting me, you or him distribute our applications to the users via Flash Player.
If before MAX 2009 I was positive that Flash Player wouldn’t make it this time, now I can bet three to one that by MAX 2010 Apple will surrender. From Flash Player’s perspective, the mobile landscape will be substantially different a year from now. Competition to iPhone will keep increasing, and if today a modern Flash Player is technically non-existent in the mobile space, a year from now vast majority of these devices will run its latest version.
Apple won’t want to be the only device that shows lots of Web sites in a crippled form. Besides, enterprises and private developers won’t stop developing Flash-based RIA just because iPhone doesn’t support them.
On the positive note, Adobe announces that the upcoming Flash Pro CS5 will allow developing applications for iPhone in ActionScript. Selecting iPhone in a deployment ComboBox will extract the ABC code from a regular SWF, and run it through the LLVM optimizer/compiler linking all required libraries to run natively on iPhone’s ARM processor. Developers can test their new creation on the iPhone hooked up via the USB port. After the testing is complete, the application will go through Apple reviewers, and if approved, it’ll be signed and added to Apple Store.
By doing this Adobe kills (at least) two birds with one stone. First, it’ll allow legions of ActionScript developers start working with iPhone without the need to learn not too friendly Objective-C. Second, many new developers will purchase Flash Pro CS5 just for this reason alone.
Flex 4 is a serious re-write. If release of Flex 3 was a set of additions to Flex 2, this time we are facing a major change of this framework. Developers will get a brand new set of Spark UI components. Flex engineers separated skins from the functionality of these components – they are lighter, and skinning can be done by graphic designers while developers worry about the functionality. To put it simple a Button doesn’t know how it looks. And the look can be changed without the need to modify the code of the button itself – just assign it a new skin component, and off you go.
Flex team is working on maintaining complete compatibility between the new (Spark) and old (Halo) components and we should be able to mix and match them, but for new projects it would be very hard to justify using the old set from the mx namespace.
Enterprise developers will enjoy working with new item renderers in the List based components. They support variable size items including dynamic grow/shrink, and the renderers are created only for items that are displayed. Now lists support data-specific rendering – you can use a callback function in place of an itemRenderer. The row data is passed to a function, which returns an appropriate renderer. We’ve been using these techniques for years (in Clear Toolkit components) by implementing a customized class factory, and it’s great that Flex 4 lists will get similar functionality. Spark renderers also support states and transitions.
Newly introduced Group and Data Group have scrolling APIwithout having scrollbars – just wrap them into a Scroller component (btw, pixel based scrolling is there too).
I really like new layout managers: custom layouts (wheel, spine, cover flow), list items don’t have to be rectangular any longer, you can use relative layouts, program post-layout transformations…
If you are Flex developer, allocate some time in your schedule for learning Flex 4 goodies.
Lots of improvements are in the works on the server side too. LCDS will support reliable messaging and throttling (limiting the number of messages per destination or client). Adaptive throttling sounds interesting too – the client application can control the data feed. It can command the server “slow down, I can’t keep up” or “give me more, I’m idling”.
A couple of years ago our company was working on a trading application for a financial company, and we had to manually implement throttling on the RTMP protocol level to ensure that the server won’t push the price quotes to the client in the congested network situations. The new LCDS should support this feature by introducing conflate parameter. Adobe will offer this feature only for Data Management Services though.
The LCDS Edge server will allow partitioning of the applications across multiple network tiers with optimized server-push performance.
I’d like to take for a spin a Java-based load-testing tool for LCDS, which should let you create thousands of clients hitting your server. This is not exactly the real-world situation where the Web browsers introduce additional constraints, but at least it can give you an idea if your online gaming application can work with a thousand of concurrent users or will put the server to its knees a lot sooner.
Model-driven design and new wizards in Flash Builder are not to be missed too. I’ve allocated a week in November for learning just this workflow alone.
Adobe, lower the price for LCDS, I mean get real. Five grand per CPU for the enterprise license sounds fair.
Unless you are creating a self-contained AIR 1.5 application, the need of integration with other non-AIR software leads to creation of convoluted architectures that require introduction of Java or C++ parts and the need of integration with them. It seems that AIR 2.0 will allow building applications that can directly launch and communicate with native applications (google for the NativeProcess class), automatically open files open by default applications, and access some of the popular devices in the USB ports.
Add to it lower memory consumption and support of the UDP-based peer-to-peer communication (DatagramSocket class), PC network detection (NetworkInfo) and you are getting really appealing platform for developing desktop applications.
This tool remains a bit fuzzy for me. I’m still trying to find the use for it in a real world scenarios when designers and developers have to work in parallel on the same project. Unless they will be able to seamlessly send generated and refactored code in both (designer-developer)directions, it’ll remain a prototyping tool. But let’s wait for a general release of this tool next February before jumping into conclusions.
My Wishes for MAX 2010
Overall, other than traditionally dead wi-fi, the conference was organized really well. My only wish for MAX 2010 (October 24-27, 2010 in LA) is to get read of the junk food presented as box lunches. I still remember the gourmet food of the first day of MAX 2008. Based on the fact that our company can hardly keep up with growing demand for Flex developers, I can confirm that economy is recovering really fast, and I hope that things will go well for Adobe too and they will pass some of the surplus to us in a form of rack of lambs, Chilean sea bass, and creme brulee for all attendees of MAX 2010.
This was a brief summary of technical news that caught my attention while attending Adobe MAX 2009.