Channels ▼
RSS

Web Development

Adobe AIR: Desktop/Web Convergence


Oliver is a senior computer scientist at Adobe Systems on the Adobe AIR engineering team. He can be reached at goldman@ieee.org.


Over the last few years, web-based Rich Internet Applications (RIAs) have become increasingly sophisticated. They are leveraging technologies such as HTML, AJAX, Flash, and PDF to add depth and interactivity previously found only in desktop applications. At the same time, these technologies often allow for shorter development times than traditional desktop development environments such as C++.

Still, web-based RIAs are fundamentally limited by the browser security sandbox. They cannot access local filesystems and other devices (such as printers) except via a limited, user-mediated route. They cannot open new windows at will, or run without any windows open. They cannot run when offline. For all their richness, they still fall short of desktop applications in these capabilities.

These restrictions are not a bad thing. The browser security sandbox is essential to keeping the Web safe and, therefore, usable. For many web-based applications, the ease of obtaining the application—simply entering a URL in nearly any browser—more than makes up for the limitations. Desktop applications, on the other hand, do not have to operate with the same security restrictions because they require an installation ritual in which the user elects, by confirming the install, to grant greater access.

Adobe AIR, the code name for an Adobe project (labs.adobe.com/technologies/air) aimed at enabling the development of desktop applications using web technologies, aims to strike a new balance in this game by providing for the development of desktop-based RIAs. These applications can take advantage of filesystem access, windowing, offline storage, and other traditional desktop features, yet are built with the same technologies used for the Web today.

Adobe AIR consists of two pieces:

  • A runtime that supports the installation and execution of applications on Windows, Mac OS, and Linux.
  • An SDK that provides free tools for the development of these applications.

What Is a Desktop Application?

The "desktop applications" Adobe AIR is targeting are not defined merely by the presence of APIs to enable multiple window support or filesystem access. Adobe AIR targets applications that integrate tightly with the target operating system like traditional desktop applications written in C, C++, or Objective C. For example, Adobe AIR applications are launched from the start menu or dock, appear under their own name in the Activity Monitor or Task Manager, and have their own entry in the Windows Add/Remove Programs control panel (see the TimeTracker application in Figure 1 for an example of an Adobe AIR application).

[Click image to view at full size]

Figure 1: TimeTracker application created by gskinner.com

Adobe AIR is not targeting all desktop applications, however. Applications with extreme size, computational, or other demands are probably not well suited for implementations in web-based technologies or Adobe AIR.


Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.
 
Dr. Dobb's TV