Frank Sommers: Adobe’s AIR platform has been around for over a year now. At first available only on Windows and OS X, you recently released a Linux version. What is the significance of this release for developers?
Adrian Ludwig: In December, we announced the general availability of AIR 1.5 for a set of Linux operating systems: Fedora, Ubuntu, and openSUSE. That followed our announcement of AIR 1.5 for Mac OS X. The significance of the latest release is that AIR 1.5 is now supported on all the common desktop operating systems.
AIR allows applications created with common Web technologies to run exactly the same way across any operating system where the AIR runtime is supported. That means having perfectly consistent applications outside the browser. Lots of AIR applications are already in use today, and we’ve been hearing from developers who are excited that those apps can now run unchanged on Linux.
Frank Sommers: Platform agnosticism was one of Java’s goals from the outset as well. Yet, there are differences in the way Java applications work across operating systems and desktop environments. To what extent do AIR applications work in a completely consistent way in different OS environments?
Adrian Ludwig: Some parts of Java have seen pretty strong consistency across desktop operating systems. But in its goal to provide deep and very complex functionality, Java ended up a bit fragmented in terms of desktop consistency.
By contrast, we started with the idea that user experience—the presentation layer, the look and feel of an application, and the way an application interacts with users—is the most important part of an application, whether an application runs inside the browser or on the desktop. For us, that consistency was absolutely critical. We’re very focused on consistency across OSs: Getting close was not good enough.
We had to deal with many issues to achieve that goal on Linux. Linux is not really a single operating system, but a word that describes a whole collection of operating systems. We’re working on the most popular ones, and will support even more Linux varieties in the future. As well, there are several window managers in use on Linux, and we currently support KDE and Gnome. We had to do a lot of work because windowing, presentation, and transparency all work a bit differently across Window managers.
The fruits of all that work being present in AIR 1.5 is exciting for Linux folks: In the past, even making small tweaks to an existing app to run on Linux was considered too much and, in many circumstances, was not worth the effort. That is no longer an issue, because AIR 1.5 apps provide the same user experience on Linux as they do on Windows and on Mac OS.
Frank Sommers: Several runtime platforms have tried to provide a consistent user experience across operating systems and windowing systems, yet few have succeeded in that pursuit. In what respects is AIR different from those competing technologies?
Adrian Ludwig: From an implementation point of view, we were able to achieve a very high degree of consistency across operating systems because we’re using Web technologies. Those technologies were designed primarily for a browser environment, and the browser already shields an app from many OS-based differences.
In AIR, we start with two virtual machines: WebKit, providing HTML and JavaScript rendering, and the Flash VM for ActionScript rendering. These foundational technologies ensure that a lot of functionally in AIR is similar to what you get inside the browser: HTML presentation, graphics presentation, audio and video rendering, transitions, and even things like GPU acceleration. The Flash Player, combined with modern browser rendering engines, provide those sorts of functionalities as well.
In addition, AIR provides capabilities that would not be appropriate inside a browser. One example is a local RDMBS, SQLight, that we contributed some additions to, such as the ability to encrypt the local database. Access to the local file system is another such feature: You can read as well as write local files on the client machine with AIR.
Another set of desktop-only features relates to notifications and windowing: the ability to have multiple windows, layering those windows, and an application to run in the background with no windows at all. Windowless mode, for instance, allows an application to run in the background, and for a user to receive a notification only when some event occurs, such as the receipt of an email or IM message.
Application transparency is another area that’s hard to make work across different platforms, and you certainly can’t make it work inside a browser. Transparency gives your application the ability to have non-rectangular windows. The windowing systems of most modern OSs prefer windows to be rectangular. We’ve done a bunch of work to allow any window shape in AIR. We’ve seen applications that allow the shape of the window to dynamically change, for instance.
Frank Sommers: A key Adobe technology that’s also about a consistent user experience is the Portable Document Format, or PDF. To what extent does AIR provide support for interacting with PDF documents?
Adrian Ludwig: The way we currently provide PDF support in AIR is by directly connecting with Adobe Reader, previously called Acrobat Reader. In addition to just rendering PDF content inside AIR, this integration also provides interaction with content inside PDF documents.
Communication between AIR and Adobe Reader occurs via a bridge that allows you to invoke scripts embedded in PDF documents, and to pass information back and forth between PDF, HTML, and Flex. In enterprise AIR applications, we’ve seen that capability being used to fill out PDF forms, to manage information about documents, and to present information in a way that preserves high document presentation fidelity using the PDF file format. Another interesting scenario you can do with AIR is to capture Web site data from HTML into some Flex data structure, and then present that data in PDF.
Frank Sommers: What’s next for AIR?
Adrian Ludwig: We’ve talked about the OpenScreens project at Adobe, a collaboration with many mobile device manufacturers, providers, and network operators. That project is a primary focus for our company, and is a key focus both for AIR and for the Flash Player, the other pillar of the Adobe Flash platform. We want to deliver the entire platform on mobile devices.
The current AIR release is a desktop-oriented release, but is also a stepping-stone to being able to run on mobile devices. Many of our partners are starting to use Linux on some of the smaller devices, including netbooks. They are excited about being able to run AIR on Linux because they can begin to see the roadmap for AIR apps running on those devices as well.