The security sandbox of the browser is often one of the first lessons many of us learn when we begin developing projects for the web. You don't have access to the local file system, and you have limited cross-domain support. We also learn that the fundamental system on which the web is constructed is entirely stateless.
Despite these seemingly critical limitations, web developers have persevered, and increasingly complex applications continue to appear, setting new precedents.
What would happen if these limitations were removed? What if we could use the same technologies the web is built on, but escape the security sandbox of the browser? When you develop a desktop application for Adobe AIR, you have exactly that option. The technologies employed are the same HTML, JavaScript, and CSS on which the web is built, but the deployment model is that of the desktop.
Desktop applications built with Adobe AIR can make requests across as many domains as they want. When good old XMLHttpRequest gets data returned, it can save directly to the user's file system, or even store that data in a local relational database. Taking this even further, there’s support for new types of data exchange that include binary data and persistent socket connections.
Exploring this newfound freedom and combining these new abilities with the massive proliferation of services opens the door to an entirely new world of possibilities, such as media storage with YouTube or Flickr, data storage with Amazon S3, workflow and CRM infrastructure with Salesforce.com. The list goes on and on. Developers can manifest these services as features for their own applications with minimal investment.
Adobe AIR makes it possible to build the next generation of web-enabled desktop applications without the need for expensive infrastructure consistent with traditional web development. Developers can use the same skills and technologies, but deploy them without the traditional limitations. Web developers don't just lose those limitations, they also lose something else—the browser chrome.
Many wonderfully advanced web applications have charted legendary courses to success in the browser, so why would we want to remove it? It's not the browser per se that gets in the way. In fact, for many applications the browser is an ideal deployment method. The chrome of the browser itself, however, directly interferes with brand consistency.
Consider Apple iTunes as an example. Here's a desktop application that substantially leverages web-based technology (the Apple iTunes Music Store). Where's the browser? What would the experience be like if you bought an Apple iPod at an Apple Store, plugged it into your Apple MacBook Pro, and then launched Microsoft Internet Explorer?
By removing the browser chrome and leveraging a desktop deployment model, Apple was able to achieve a degree of seamless integration that had yet to be achieved. The result is a wildly popular means of media distribution. Consider Internet giant eBay. Most of the customers that use eBay are perfectly happy using the browser for their auctioning needs. One subset of eBay users, however, the power sellers, finds the browser limiting. These power sellers, and indeed eBay itself, make money by being able to execute a high number of transactions.
Managing that volume of transactions in the browser, due to the stateless nature and cumbersome request/response model, physically caps even the best seller. Managing individual items that may exceed hundreds or even thousands becomes a nightmare task as a seller refreshes web pages in a browser over and over. So why not remove the browser, but keep the web development infrastructure and technologies?
Using AIR, eBay's ambitious eBay Desktop (formerly known as San Dimas) project is doing exactly that. By removing the browser and integrating the application into the desktop, eBay allows power sellers to manage their auctions at an entirely new level. Sellers can create auctions while offline, get system notifications when they've been outbid, and drag and drop auction results to the desktop to be saved as common desktop file formats, such as Microsoft Excel.
Even better, because there's no browser chrome, eBay creates a personal relationship with some of its best customers.
Developing for the desktop usually means leaving your web skills behind, building a platform-specific application, or using an alternative of complex object-oriented technologies. Adobe AIR, however, enables web application developers to use their existing web development skills, tools, workflow, and even existing code base, to build and deploy desktop applications.
At a high level, Adobe AIR accomplishes this by taking the world-class WebKit browser engine (most notably used in Safari), and wrapping it alongside Flash and PDF technologies, as a cohesive desktop runtime. Adobe AIR doesn't stop there, though; it also folds in a rich API that enables common desktop features such as file IO, network awareness, native drag-and-drop support, an embedded relational database (SQLite), and much more.