AIR 2.6 for Android 2.2, 2.3, and 3.0 is out

Our teams did a great job: in less than a year from the initial support for Android 2.2 (AIR 2.5 last autumn) they released, today, AIR 2.6 for Android devices running 2.2, 2.3, and Honeycomb (3.0).

Here are some of the new features:

  • Automatic soft keyboard support – this feature enables support for the soft keyboard even for applications that weren’t designed from the ground up for mobile (the keyboard raises and lowers automatically)
  • Asynchronous bitmap decoding –  you can improve the bitmap loading/displaying by using this feature.
  • USB debugging for Android – yeah baby, now I can debug while sitting in a plane:). As the name says, when you have your device connected through the USB cable you are able to deploy and debug the application without requiring a WiFi connection. You’ll find Android USB drivers for Windows in the AIR SDK.

If you have applications compiled for AIR 2.5, you don’t have to worry, they will run on AIR 2.6 without recompilation!

Adobe AIR 2.6 for Android is now available!

Adobe is pleased to announce the immediate availability of Adobe AIR 2.6 for Android smartphones and tablets.  AIR 2.6 for Android adds support for Android 3.0 and the latest Android tablet devices – including the Motorola Xoom – as well as improvements to performance and GPU-based rendering, updated Android gesture support, and improved handling of HTML content within AIR apps.

AIR 2.6 for Android provides the foundation for the new Content Viewer for Android, part of Digital Publishing Suite.  Content Viewer for Android uses AIR 2.6 to enable publishers to author immersive, engaging publications and deploy content across platforms and different devices.  Major publishers using Digital Publishing Suite are on board to create and distribute content using Content Viewer for Android.  Condé Nast, National Geographic and Dennis Publishing are among the first publishers to indicate they will use this new viewer to amplify the reach of their iconic titles.

AIR 2.6 for Android can be downloaded from the Android Marketplace and is available on devices running:

  • Android 2.2 (FroYo)
  • Android 2.3 (Gingerbread)
  • Android 3.0 (Honeycomb)

A list of mobile devices that meet the AIR system requirements can be found at

AIR 2.6 for Android performance improvements include:

  • Up to 20% faster scrolling performance
  • H.264 video decoding at 30fps
  • GPU-based animation and games at up to 50FPS

AIR 2.6 for Android functional improvements include:

  • Support for the latest Android system gestures
  • Bitmap Capture for StageWebView, which provides tighter visual integration between Flash and HTML content
  • Asynchronous Bitmap Decoding, which improves the performance of transitions in image-intensive applications

Applications developed with the Adobe AIR 2.5 SDK are compatible with the Adobe AIR 2.6 runtime.  Adobe is on target to deliver the AIR 2.6 SDK and desktop runtime before the 2nd half of 2011.



* How to publish your AIR application to the Android Market

* Learn how to get started building applications and content for mobile and devices


* Tell us about your AIR app for Android after you’ve posted to the Android Market at

Flex 4 en 1 Jour = Flex 4 in a Day

Thanks to Antony Chauviré our mini-book on Flex 4 (Flex 4 in a Day) was translated to French. So, if you want to learn Flex 4 and, at the same time, you prefer croissants over donuts, red wine over beer, and cafe latté over American coffee or 5 o’clock tea, now you can do it in your own language 🙂

Thanks Antony!

PS. Merci beacoup, Monsieur Michaël Chaize 🙂

My HTC Inspire Review

I recently upgraded from my Google Nexus One to a HTC Inspire.  Below are a few observations that you may find useful if you are considering this phone.  My choices for a new phone were restricted to AT&T, so I compared it to the Samsung Captivate and the recently released Motorola Atrix (all of these are excellent phones).

  • The Inspire feels solid and very high quality.
  • The Inspire features HTC Sense which, to my surprise, I really like. I’ve heard others complain about older versions of it, but I personally think it is a fantastic UI and gives the phone a more refined look and feel.  This is the primary reason I chose a HTC phone.
  • The Inspire has the best Exchange email support that I’ve seen:
    • Great search support, including server-side search.
    • View emails as linear emails or as conversations.
    • View emails only from your favorites list.
    • Set email priority.
    • Flag/Unflag emails.
    • Good folder support (save emails in specific folders).
  • The Inspire includes some really good widgets.
    • HTC Calendar widget — displays a near-full-screen view of the current month.  Tap any date to get the day’s agenda.
    • HTC Email widget — allows you to thumb through emails viewing the first few sentences.  I have found this to be a great way to do a quick scan.  Emails are not marked as read by this widget.  If you tap on any of the emails, you go into the full email client.
    • HTC Contact Favorites – a vertical bar with scrollable icon-size photos of contacts in my favorites list.  A very efficient speed-dial feature.
  • You can link contacts across Exchange, Facebook, Twitter, Google, etc.  When I pull up someone’s contact, it shows their Exchange information as well as their latest Facebook status, picture from Facebook, birthday, Twitter id, etc.   It also shows your recent emails, text msgs, etc. with that contact (one click away). You can quickly link and unlink with other data sources for the contact.
  • The calendar is integrated with Facebook – so you see people’s birthdays and Facebook events in the calendar view (you can turn this off).
  • The Inspire has some clever innovations:
    • If you put the phone face down on a table, it automatically puts it in silent mode.
    • If your phone is in your pocket or purse, it will ring louder (it detects this with proximity sensors).  Once you start moving the phone, the ring gets much quieter.
    • When someone calls, you can instantly silence the ring by laying the phone face down.
  • – see screenshot below — allows you to locate your phone, make it ring (even if silent), forward text messages and calls, etc.  It’s a little buggy, but it’s still in beta.  See the screenshot below.
  • I found that the out-of-the-box settings with the Inspire were a bit battery intensive – for example, there is a widget installed called “Friend Feed” that shows your Twitter feed combined with Facebook feed and others, all in one “stream”.  It’s set to refresh all sources very often.  I ended up removing the widget because I prefer my own Twitter and Facebook clients.  Once I removed this, the battery life improved dramatically.  It’s hard to completely judge the battery life yet because I spend more time playing with it than I did my Nexus One.  Once the honeymoon period is over, I’ll post a quick update.
  • I did quickly discover that the Inspire charges faster than my Google Nexus One and faster than my previous iPhones
  • The default keyboard is very good, better than the stock Android keyboard.
  • The camera takes very good pictures compared to any previous phone.  Video is not bad.
  • The screen color, contrast and brightness are very good. The Samsung Captivate’s AMOLED screen is a bit too blue for me. I guess the photographer side in me instantly wants to color balance it. The Inspire seems perfectly balanced.
  • What I don’t like about the Inspire
    • It’s slightly larger than I would prefer (Evo-size), but I’m getting used to it.
    • The speaker phone is usable, but not outstanding.
    • The battery is a huge pain to remove/replace!
    • You can’t install non-marketplace apps without using the SDK (or other tool) to “side load” it.  This is an AT&T thing and is also true for the Atrix and other models.  I hate it when carriers try to protect me from myself!
  • The Inspire does not ship with Skype, but you can install it.  It’s a little tricky since the Skype installer downloads an app from their beta site and then fails to install it due to the non-marketplace limitation.  You have to do some command-line trickery to get it on.  I used this procedure and got it installed.
  • Android Central did a very detailed review today – check it out. screenshots screenshot

HTC Inspire Screenshots


I started to put together a video, but then I found the one that Android Central did –

Now my Nexus One can become my dedicated development phone!


OH – one more thing – Adobe Flash Player and Adobe AIR run FANTASTIC on this phone!


Build a LiveCycle ES Encryption Process using Watched Folders

This video tutorial shows how anyone can use LiveCycle ES Workbench to build a simple process with watched folders as endpoints to encrypt PDF documents. The watched folder configuration was done as it was suggested on the Google Livecycle Developers list.

If you want to seriously geek out on this and try it, you can download LiveCycle ES from

Build a Livecycle Encryption Process using Watched Folders from Technoracle on Vimeo.

Imagine this new 3D Flash technology applied to enterprise

Earlier today, the guys at Flare3D posted an amazing video on YouTube showing off their upcoming game that will take advantage of the soon to be released Flash 3D features (code name Molehill). Take a look at the video below (43 seconds long):

I suggest viewing this full-screen.

Did you notice that it’s also multiplayer?  What’s amazing about this is that you will be able to play games like this in your web browser!

Now… start thinking about what can be done using this same technology in non-gaming environments. Here are a few ideas I had:

  • Extremely rich data visualization that can be interactively explored in 3D space – this will let us go well beyond bar and pie charts and visualize and interact with extremely complex, multidimensional data in meaningful ways
  • Creating 3D environments for training – allowing the viewer to familiarize themselves with a dangerous facility before actually stepping foot into it
  • Product tours – we’ve seen websites that allow the viewer to spin a widget on the screen to see it from different angles, but this will take it to the next level and allow much more immersive product exploration
  • Don’t forget about all of the collaboration capabilities you could add using Flash’s P2P features as well as LiveCycle Collaboration Service
  • What else?  It’s time to start imagining because the technology is at the doorstep.

It’s incredibly fun to watch everything evolve. We’re seeing some amazing demos of what people are doing with HTML5 canvas ( – a huge advance in what we could do with traditional HTML/JS/CSS. It’s nice to see Flash taking it to the next level as well. When everything advances, we all benefit and our lives as developers get more interesting!

Thanks to Serge Jespers for showing me the Flare3D video!


How to work with PDF in Adobe AIR (Source Code)

AIR has worked with PDF since version 1.0. When Adobe AIR first launched, there was a great amount of focus on the PDF inclusion within the runtime and it was given equal billing with both Flash and HTML. For some reason, much of the focus on AIR development trends has been on working with ActionScript and MXML rather than PDF. Nevertheless, there is a steady and growing community of developers who find themselves facing the task of making AIR and PDF work together. This tutorial will help you understand the basic architecture and structure of an application.

The finished Flex 4 project can be downloaded from the location below (it is named MAXABC04-PDF.fxp). This application was compiled with Flash Builder 4, Flex SDK 4.01 and AIR SDK 2.5

How it works:

Architecturally, the runtime engine for HTML within Adobe AIR is WebKit (, an open source implementation that supports many HTML 5 features. The exact version of the WebKit library varies based on the AIR version you are using. To display PDF content, the AIR runtime uses a PDF plug-in to the AIR WebKit library. For developers, you communicate to the PDF document object through the HTML DOM and by using a scripting bridge within the PDF document itself.

To build the overall project, you need four main components – a main.mxml application, an HTML file that contains a reference to the PDF, the AIR application descriptor file, and a PDF document.

The HTML file is only tasked with loading up the PDF as an object. The file is very simplistic.

The PDF document is basically a 4 page long document containing a bunch of random Latin words. The following script has been added to the PDF document.

You can examine this PDF yourself by taking it from the project referenced above and opening it with Acrobat X and using the JavaScript Editor (Reader and Acrobat both have JavaScript VMs that work at runtime).

This script simply listens for an incoming message. There are four handled messages: ZoomIn, ZoomOut, PageUp and PageDn. The switch-case statement shown above maps these messages to specific instructions known natively to the plug-in that match the basic semantics of the message.

In order to talk to the PDF, you first have to load an HTML page within your AIR project. The basic AIR source code is as follows:

On line 11, the function init() simply enables the four buttons as the HTML DOM is loaded. This is triggered via the initialize event of the application.
Line 23 contains the key function sendMessage(), which sends one of four messages to the HTML DOM. This function accepts one parameter, which is the String message sent to it based on which button is clicked. As you try to type line number 27, you will notice that the code complete does not work in Flash Builder. This is because these are dynamic objects. Line 27 creates a new Object variable called pdfObj by referencing the pdfhtml (a variable name given to the HTML component on line 28) htmlLoader.window.document object and calls the method getElementByID(). The parameter name “PDFObj” matches the name of the Object within the HTML page. Line 28 simply sends the message that corresponds to the button pushed, which then gets picked up by the script in the PDF document.

Below is a screenshot of the AIR application with the buttons that can navigate forwards and backwards, and zoom in or out.

That is pretty much a basic starter for controlling PDFs from AIR. To get more advanced functionality, you will need to study up on the scripting functions available within the PDF runtime environment and then add the script bridge necessary to control those functions. Good luck!.