Friday, July 27th, 2007
>Kevin Lynch started out the keynote talking about “Four Generations of Applications”:
- Web applications
- Rich internet applications
He then discussed the architecture of rich internet applications, focusing on the challenges.
The first challenge he discussed was local storage, and he highlighted how Google Gears is solving that problem, and how Air wants to cooperate with Gears.
The next challenge was searchability and deep linking. He proposed that we as a community use # as a standard for maintaining state in Ajax application URLs. Adobe has sent a proposal to the OpenAjax Alliance to standardize # and begin the process of standardizing deep linking.
Cross-domain access came up next. He reviewed the problem and why the cross-domain security policy exists. He discussed a proposed “crossdomain.xml” permissions file that allows a site to declare exceptions to the cross-domain security policy, which looks like:
<cross-domain-policy> <allow-access-from domain="*.siteA.com"/> </cross-domain-policy>
It turns out this file already exists on 36% of Alexa’s top 100 sites in order to support cross-domain Flash behaviors. Because Flash already supports this mechanism, you can use Flash today as a hidden communication mechanism to allow cross-domain behaviors (see adobe.com/go/crossdomain).
Kevin hopes this same mechanism can be implemented in browsers and offered to work with standard bodies to add this to browsers.
- Much faster performance
- Strong types
- Sealed classes
- Runtime exceptions
- (Highly optimized, fast) regular expressions
To tempt the audience, he showed off some E4X syntax, like:
Kevin showed off the adoption of Flash Player 9, showing that it was pushed out to 83% of the web in 9 months, calling it “the most ubiquitous platform in the world, even more than operating systems” and the “fastest deployment” ever for a new platform.
Kevin announced a new free, open-source Flash/Ajax Video kit that allows really simple syntax for playing movies.
<div id="videoBox"></div> video = new FAVideo("videoBox", "myvideo.fly", 500, 500); video.play();
The playbar beneath the video can be hidden or customized:
video.skinVisible = false;
He also showed how to create HTML controls:
<p align="center"> <a href="#" onclick="video.play()">PLAY</a> <a href="#" onclick="video.stop()">STOP</a> <a href="#" onclick="video.seek(video.getPlayheadTime() - 5)">REW</a> <a href="#" onclick="video.seek(video.getPlayheadTime() + 5)">FWD</a> </p>
This toolkit is available at adobe.com/go/favideo. He went to hbovoyeur.com to show off how you can use the video capabilities of the Flash player to do some really cool interactive stuff.
The next weakness Kevin highlighting is developer productivity. He said that a declarative way to do development is more productive than procedural mechanisms. He highlighted how Flex’s MXML gives a much richer declarative mechanism than HTML. To this end, he reviewed that Flex 3 is now open-source, with a public bug database and daily builds. The project will be fully up and running by the end of the year under the Mozilla Public License.
And now the transition to AIR, which Kevin described as a way to bring Web apps to the desktop. He highlighted that AIR adds these services to web applications:
- File system access
- Network detection
- Application updating
- Local database
He also reviewed that AIR applications can be written in two styles: HTML or Flash. In both cases, you can seamlessly integrate PDF documents into the application. He also highlighted a capability I hadn’t seen before: support for deploying to “Device OS’s”. He then showed off some AIR applications:
- Simple Tasks, an Ajax application written by Jack Slocum of Ext JS running as a local Air app.
- Finetune, a Flash application to stream music
- Buzzword, a high-quality Word processor that shows off some very sophisticated layout and UI features. From his quick demo, it seemed more powerful than Apple’s Pages but adds collaborative features like co-editing with other users over the network (but is turn-based not concurrent)
- Adobe Media Player, a way to play Flash video on the desktop (similar to the Quicktime Player)
- Pownce, a client for Kevin Rose’s new Twitter-esque service
Pownce is invite-only, but Adobe obtained 300 invites. First-come, first-served by emailing firstname.lastname@example.org.
Adobe has an Ajax homepage at adobe.com/go/ajax.