Archive for November, 2008

Building Desktop Applications Powered by Dojo and Adobe AIR

Dylan Schiemann from SitePen presented an excellent talk at MAX in San Francisco last week titled "Building Desktop
Applications Powered
by Dojo and Adobe AIR." Dylan has made the slide deck (.pdf) from his talk available on his blog.

In his session, Dylan covered numerous topics related to Dojo and Adobe AIR including:


Application mashups on Adobe AIR

One of the best things about attending Adobe MAX is that you get to see some of the technology experiments that Adobe is conducting. The sneaks this year included a really cool new project called Durango that is now available on Adobe Labs. Durango is a framework that allows developers to build AIR applications that can be customized by end users. It allows developers, designers and end-users to easily mashup independent components to create new applications or extend existing Durango-enable applications.

Developers need to download the Durango SDK in order to use the Durango framework. The SDK also includes several sample applications . Durango enabled applications are delivered as AIR (.air) files which end users install. These applications incorporate the Durango framework. The team is requesting your feedback on this Labs release to as they continue to develop the features and capabilities of Durango.

For more details, please visit the Durango page and review the FAQ on Adobe Labs.

Oliver Goldman’s “High Performance AIR Applications” MAX 2008 slides now available

Oliver Goldman, a member of the Adobe AIR engineering team, posted his MAX presentation High Performance AIR Applications to his blog along with sample code, Topics include criteria for defining metrics around performance, taking measurements, and more.

Ext JS announces enhanced support for Adobe AIR

The team at Ext JS announced today several major new enhancements to the Ext.air package today including the addition of several new classes:

  • Ext.air.MusicPlayer – a more advanced version of Ext.air.Sound designed for playing mp3’s and podcasts
  • Ext.air.Notify – a new notification class for displaying user notifications
  • Ext.air.VideoPanel – allows for embedding of Flash based video while maintaining the same functionality as an Ext.Panel
  • Ext.air.Clipboard – a more friendly Ext JS way of manipulating the clipboard

In addition, Aaron also announced the availability of a new Adobe AIR sample application (.air) called ExtPlayer, including source code, that demonstrates some of these new API’s in action. For more information, be sure to check out Aaron’s post.


Here is an example of how to display a notification using Ext.air.Notify function:

var msg = 'Title: {0}<br/>Artist: {1}';
var sample = new Ext.air.Notify({
msg: String.format(msg, id3info.songName, id3info.artist),
icon: '../famfamfam/music.png'

Google Maps API for Flash now supports Adobe AIR

The team behind the very impressive Google Maps API for Flash recently addressed a popular feature request that involves extending support of their API’s to Adobe AIR.

Dmitri Abramov posted on the Google Geo Developers Blog:

There were both technical and legal challenges blocking AIR support in our API. AIR has a different security model, which required a number of changes to the "internal plumbing" of the API in order to implement our delayed-loading model, where the actual implementation of the map’s functionality loads dynamically from Google’s servers once the application launches. Also, our Terms of Service used to specify that the Maps API could only be used for online web applications.

Now that both the API and Terms of Service have undergone a facelift, we are releasing the first version of the API that will allow Flash/Flex developers to bring Google Maps to the AIR runtime.

This is great news for Adobe AIR developers looking to build on Google’s mapping API’s. The team has also put together a great tutorial that shows how to take advantage of this functionality from Flex Builder. Our thanks to the Google Maps API team for making this possible!

MAX Session: Maintain Security With Adobe AIR

It was my pleasure this week to co-present a session this week with Peleus from the Product Security Team. We discussed things developers should know and do to maintain security in their AIR applications.

Users grant AIR applications a lot of privilege, so developers naturally want to use that power wisely and write applications that are difficult for attackers to abuse. The talk was similar to the talk I gave on the onAIR Europe tour, but longer and more technical.

The slides are
available in PDF
and are viewable below thanks to the magic of Share.

Explore over 200 Flex and AIR samples with the new Tour de Flex application

James Ward announced a new desktop application powered by Adobe AIR called Tour de Flex designed for exploring Flex capabilities and resources, including core Flex components, Adobe AIR and data integration, as well as a variety of third-party components, effects, skins, and more. James has been working on this project along with fellow Adobe employees Christophe Coenraets, Greg Wilson and others.

As part of his blog post announcing Tour de Flex, James writes:

Like the old Flex Component Explorer, Tour de Flex can be used to find components. But it goes way beyond just out-of-the-box Flex components. This first release contains 217 components and samples including popular Cloud APIs like and Intuit, numerous community components from people like Doug McCune and Tink, commercial components from companies like ILog, and numerous other goodies. If you find something missing you can submit it!

The official Tour de Flex website also provides some additional details: :

Tour de Flex includes over 200 runnable samples, each with source code, links to documentation, and other details. Topics include the Flex Core Components, Flex Data Access, AIR Desktop Capabilities, Cloud APIs, Data Visualization, Mapping, and a growing collection of custom components, effects, skins, etc.

This should prove to be a very handy reference application for anyone thinking about building an AIR applications.


Advanced JavaScript debugging support for AIR 1.5 apps from Aptana


Paul Colton of Aptana announced JavaScript debugging support for Adobe AIR 1.5 applications using the new Adobe AIR Development Plug-in for Aptana Studio (beta). Our team has been working closely with the Aptana team to help bring this feature to life by exposing new debugging interfaces from the AIR 1.5 runtime.

Improved support for debugging has been one of the most popular feature requests from JavaScript developers building AIR applications since our initial release (this capability already exists in Flex Builder for Flex developers using ActionScript). With the AIR beta plug-in for Aptana, developers can now set breakpoints and step through code with insights to variables, functions, return values and more. We are thrilled to be able to share this news with Aptana.

This is a beta release and the Aptana team is looking for feedback from the community. A screencast is available that provides an overview of the new functionality. As part of the announcement, Paul wrote:

That’s why today we’re pleased to announce a huge step forward in the ease of creating Ajax and HTML apps for Adobe AIR: Today’s release of the Adobe AIR Development Plug-in for Aptana Studio (beta) features, you guessed it — JavaScript debugging for Adobe AIR apps along with support for Adobe AIR 1.5 which Adobe announced earlier this week.

We previewed the JavaScript debugger for Adobe AIR apps yesterday to a group at Adobe MAX in San Francisco and got applauded for providing this critical utility to the AIR community. Like with other debugging environments you’re familiar with, just click to set a break point in the gutter, then step through, into and out of lines of code while viewing variables and introspecting objects.

Note that the JavaScript debugging interfaces added to AIR are not specific to Aptana and can be integrated into other tools as well. Also, another valuable tool for lightweight debugging of AIR applications is the AIR HTML Introspector included in the frameworks directory of the Adobe AIR SDK. By including a single .js file in your JavaScript-based AIR application, it is possible to introspect DOM properties and functions, edit attributes and text nodes for DOM elements, view XMLHttpRequest objects and their properties and more. It does not, however, allow you to set break points and step through code like the Aptana plug-in described above. To learn more about the AIR HTML Introspector, please view the Debugging with the AIR HTML Introspector in the Adobe AIR documentation.

Related links:

  • Aptana’s Adobe AIR plug-in page with installation instructions
  • A screencast that demonstrates the debugging capabilities within Aptana Studio

Introducing Adobe AIR 1.5

We are pleased to announce the immediate availability of Adobe AIR 1.5. New capabilities include:

  • Flash Player 10 capabilities: Adobe Flash Player 10 is one of
    the most significant releases of the player, with groundbreaking new
    capabilities. We’ve updated the version of Flash Player included with AIR to
    version 10. For example, it’s now possible to take advantage of custom filters,
    blend modes, and fills with Adobe Pixel Bender. AIR 1.5 also supports the new
    3D effects, including perspective, correct transformation, and animation of 2D
    plans in a 3D space. Rich media
    enhancements include dynamic streaming to improve the quality of video playback
    based on bandwidth availability as well as support for the Speex codec for
    delivering high-quality audio at lower download speeds.
  • WebKit update: The version of WebKit included in AIR has
    been updated to a newer version. The updated version includes Squirrelfish, a
    new bytecode interpreter that improves the execution speed of JavaScript for
    common actions. Our internal tests show that HTML-based AIR applications run as
    much as 35% faster for many types of operations. We have also added support for interactive debuggin fo Ajax-based AIR applications.
  • Encrypted local database: By popular request from
    developers, we’ve added a way of encrypting the
    local database
    inside of AIR. This uses standard SQL apis, so there’s no need for developers to learn specific crypto APIs. Be sure to check out the Quick Start application by Paul Robertson.

If you are a developer building AIR applications, new versions of the Adobe AIR and Flex SDK’s are now available.

New articles available on the Adobe AIR Developer Center:

There are also several new Quick Start applications:

New and updated sample applications with source code that are available:

  • BlackBookSafe – BlackBookSafe is an HTML/JavaScript contact list sample application built on Adobe AIR 1.5. The application uses the JQuery framework and the AS3CoreLib library, and leverages three new AIR 1.5 features: Pixel Bender effects, 3D transformations, and the encrypted local database.
  • Salesbuilder – Salesbuilder is a Sales Force Automation application written in Flex and deployed on the Adobe AIR runtime. It demonstrates local persistence using the encrypted, embedded SQLite database, data synchronization, native drag-and-drop support, and direct chart manipulation.
  • Apprise – Apprise is an RSS reader that works online and offline. It features automatic categorization by author and topic, OPML import and export of feeds, real-time search, site view and check mark support, advanced sorting, and support for RSS and ATOM. The user interface has been localized into 11 languages: German, English, Spanish, French, Italian, Japanese, Korean, Portuguese, Russian, Simplified Chinese, and Traditional Chinese.
  • 3D Image Browser – This sample application provides search capability for the Flickr website combined with a 3D layout to provide a more interesting way to browse the images. It also has a tag cloud that allows you to find related images. This application uses the new AIR 1.5 3D transformations on a transparent background.

In addition, we’re also putting the final touches on Adobe AIR 1.5 for Linux so stay tuned for additional announcements.

AIR Recipes: Tips and Tricks for AIR Application Development

The Adobe Developer Connection site has a really good tool for finding handy tips and tricks for AIR application development: the Adobe AIR Cookbook. If you’re familiar with the O’Reilly Cookbook Series, the AIR Cookbook is the same idea (in fact, it’s done in partnership with O’Reilly). Rather than trying to teach the fundamentals of programming for AIR, or providing an API reference, the AIR Cookbook contains ready-made solutions for common AIR application development problems.

For example, if you just discovered that the differences in native window chrome across operating systems is affecting your application content, then you might want to read this. Or if you have a datagrid with a column of checkboxes and you want users to be able to check or uncheck all the checkboxes at once, you’ll probably want to consider this solution. Wondering about using a TCP socket from JavaScript so you can leverage a protocol not directly supported in AIR? Then check this out.

Recipes are submitted by AIR developers building real-world AIR applications which means they provide practical solutions to actual problems. Each recipe contains code snippets, so the solution to your problem might be as easy as copying and pasting a function or two, or you might just use a recipe as a hint to help you figure out how to solve your problem on your own.

You can also use the AIR Cookbook as a source of inspiration. For instance, maybe you never thought of adding undo and redo to your AIR application, or storing ActionScript objects in the Encrypted Local Store. If the code is already written and just waiting to be incorporated into your application, why not give it a try?

Anyone can post recipes, so if you have a favorite technique that you want to share with the world, please feel free to contribute. Recipes support comments, so you can contribute to existing posts, and you can even subscribe to the AIR Cookbook RSS feed to catch new recipes as they come in.

Relevant links: