Click to see

Home Tutorials Flex DevCenter AIR DevCenter AIR Apps
Keep an Open Eye ThePhotoFinishes Takethe5th PixofCanada Pix of Toronto Bookraft

theOpenSourcery


The Sidebar:
The GUI Yoyo
For the longest time, program interfaces, then GUI - Graphical User Interfaces like Windows and Mac, albeit the basic input and output of programs, has been between a client terminal/PC/device and a server machine. Back in mainframe days it was the big central mainframe feeding hundreds of video terminals. In the PC era standalone PCs started to talk to servers again with client server. The visual smarts on the client PC while the transaction data and bulk of processing tasks resided on the server. The Web, starting in the mid 1990s, saw much of visual presentation migrate back to the Server and the Browser became dumb terminals like back in the 1970's. But AJAX in early 2004 timeframe, re-reversed the trend and that has just begun to reverse back to smart client browsers. RIA/RAIA are client and server independent.

Java, 1st RIA
Suns Java Applets were the first RIA apps back in 1997 with image, animation and simple video features. But Microsoft after "embracing Java" saw the run anywhere features of Java as too dangerous to its Windows desktop monopoly. So Redmond poisoned Java on the IE browser by distributing only its obsolete and unimproved Windows "JVM" with every copy of the IE browser. This effectively cut off all the new Sun Java technology starting at Java 1.2 and all but killed Java Applets for client side use.

However almost as bad as Redmond's actions was the "support" Sun received from the rest of the Java community. Major players that were profiting mightily from their server side Java apps like BEA, HP, IBM, Oracle and others; these IT vendors refused to pressure Microsoft in a concerted fashion. They could have easily said to Redmond - "you do not distribute Sun's JVM with IE, then we will not use IE in-house and recommend to our clients that they switch away from IE also".The Linux and Open Software gurus were equally negligent. 8 years later and with JavaFX, Sun is back in the RIA/RAIA game.

Here are some observations about Flex 3

FlexBuilder and Flex have now reached version 3 - the so-called Microsoft charm state when all the parts of a system are now supposed to hang together well enough such that designers and developers can make intelligent decisions on whether to proceed with the technology. And given that Flex is the major vehicle for delivering Adobe's RIA-Rich Internet Applications, Flex 3 is an important milestone.

In the sidebar at the right, we discuss how user interfaces and presentation software have been yoyo-ing between a server-centric versus a client dominated strategy. With RIA rapidly evolving toward RAIA-Rich Anywhere Interface Applications, the ambiguity between having the interface logic reside primarily on the client or the server vanishes as RAIA apps like Flex-built AIR programs are largely client based. RAIA have the added virtue that they are Swiss Army knife self sufficient - they have all the logic to do display/presentation operations and enough smarts to manage/synchronize 1)local primarily or 2)local+servers or 3)server primarily transactions. Finally they have the virtue of being truly cross platform - able to run on Linux, Mac or Windows and many mobile phone devices.

Thus RAIA means the re-incarnation of Java's write once, run anywhere pioneering RIA design in the form of Java Applets/Weblets . That technology having been cut down and choked off by Microsoft's "cutting off the oxygen" tactics (see the second sidebar entry for all the sordid details) is being reborn through Adobe's Flex+AIR (because AIR's runtime is just a media savvy JVM clone) and Sun's Java+JavaFX. Both Google's Gears and Microsoft's Silverlight have serious disqualifying deficiencies to make them currently insufficient RIA/RAIA tools. So Flex 3 is very important to Adobe as it helps deliver RAIA capabilities that are Web aware but also standalone and both client + server agnostic/independent.

The screenshot below shows an example of the important role that FlexBuilder 3, the Flex development IDE built on an Eclipse base, plays in the development of both Flex 3 (Web based only) and AIR (Web capable but also Windows, Linux,or Mac standalone or Web+PC) applications. This demo app built with FlexBuilder 3 runs in a browser (as here) or in standalone mode as an AIR app on a Linux PC or Mac notebook or a Windows desktop. True, it it has no database or transaction requirements, but see Adobe Media Player or the Kuler AIR apps for these type of capabilities. In fact if you go to the AIR Developer pages here where there is a whole (and growing) roster of AIR apps that demo the richness of RAIA development.


To move this app from Flex 3 to AIR is so trivial it is a wonder that Adobe has not automated the step.

There are a lot of new features in FlexBuilder 3, here are 6 key FlexBuilder 3 features:

1)ability to develop and debug AIR apps in FlexBuilder;
2)completing of a rich set of UI components with visual editor support;
3)ability to build components in Flash and import to FlexBuilder 3;
4)full support for ActionScript 3 including enhanced debugging and profiling;
5)basic Web Services and local file or data access(SQLite) support;
6)performance improvements with faster compiles, smaller and faster runtimes.

Flex 3 Complete set of Components

But what is also evident in this version of Flex 3 and FlexBuilder 3 is that this is truly a developer's version. True, Flash and Fireworks to Flex support is available and users can import skeleton and skin-artwork from Fireworks CS4, Flash CS3 and above plus some Photoshop CS4, InDesign CS4 and Illustrator CS3 or CS4 files. But clearly even with these import capabilities, FlexBuilder 3 is not for designers. All a designer has to do is take a look at the ugliness of incorporating ActionScript3 into a MXML design file.

In fact there is a whole 3rd party cottage industry building up around generating apps from multi-layered Photoshop and Illustrator "prototype" design files. But many of these are targeting AJAX over Flash. In fact, Quark Express is a step ahead of Adobe in doing this for AJAX or Flash output designs. Clearly there is a need for Adobe's new Thermo now labeled Flash Catalyst program which is intended to bridge the gap between all the rich Adobe Graphic Design tools and Flash/Flex/AIR. In addition, the next edition of Flex named Gumbo adds more integration features. The next Flex/Flash tutorial will look at these new offerings in more detail

Summary

Since our last look through in detail of Flex, Adobe has introduced ActionScript 3 and Flash Player 9 update 3 (supporting video in H.264 format and other video runtime improvements plus a host of new graphic object features and properties). The move to ActionScript 3 is very important because ActionScript 3(==ECMAScript 4) with E4X XML parsing. This puts Adobe well ahead of JavaScript which has yet to cross that important full OO development step.

Because ActionScript 3 is full OO with all the development robustness and security this allows Adobe to use more sophisticated generation technology as seen in the new CS4 integrations and hinted at in Flash catalyst. In addition, with Flash player 9 and 10, ActionScript 3 puts the cap on key security features as well. In turn the Flash runtime becomes a more secure basic engine.

And speaking of basic engines, Adobe now offers an ADOBE Virtual Machine for faster runtime performance using a lot of the ideas and technology pioneered by Java's virtual machine. Also on the deployment front, the AIR Runtime means users can run Flash apps on the desktop, mini-notebooks and even some mobile phones major improvements. Quite a lot of delivery development goods.

However, as we have seen on the Designer side of the equation, Flex 3 and FlexBuilder 3 leave a lot to be desired. Adobe certainly has plans to meet many of those Designer requirements with Flash Catalyst and the new Flex Gumbo. Meanwhile, Sun has announced and delivered some very attractive features with its JavaFX development environ. And neither Google nor Microsoft cannot be counted out from the RIA/RAIA game. Google already has GWT for AJAX IDE development - linking that with Google Gears may yet be provided by some 3rd party toolmakers. And all Microsoft has to do is develop standalone and full capability versions of its Silverlight player - not the Windows only and "runs best in Windows" version of Silverlight. Who wants to develop for Silverlight when Flash/Flex/AIR or Java/JavaFX deliver the same capabilities and better runtime size and speed. Finally Silverlight is only available for IE, Firefox and maybe the Safari browser. But the market has seen too many times, that Redmond's promises of cross platform support are definitely subject to short-changing.

In sum, Flex 3 is still a well improved developers edition. It does show designer touches - but the crux of the features are really developer oriented. However, Adobe continues to refine the Flash/Flex/AIR product line - and Flash Catalyst and Flex Gumbo may start to deliver on the designers wish list - allow me to re-use my rich media assets in Adobe tools to deliver Flash apps faster and easier.