Adobe AIR vs. Mozilla Prism: Two Ways for a Flex Developer to Create Desktop Apps

by Michael FedotovJanuary 11, 2011
The blog post overviews Adobe Air and Mozilla Prism capabilities, major differences, and benefits of usage for Flex developers to build desktop apps.

New technologies, new possibilities

Is it possible for Flex developers to apply their web development skills to build desktop applications? A few years ago the very question would have provoked genuine amusement. Desktop and web application development require different sets of skills, different programming techniques, and often make use of different technologies altogether.

At least, that had been the case before new technologies, such as Adobe AIR and Mozilla Prism, were introduced, enabling AJAX and Adobe Flex developers to create desktop applications without having to leave their web skills behind.

 

What is the main difference?

While fundamentally designed to achieve the same thing, AIR and Prism demonstrate two quite different approaches to its accomplishment. Adobe AIR is a cross-platform runtime environment primarily aimed at a Flex developer. AIR makes it possible to create a desktop application from the code base of an existing Flex project, so that both desktop and web versions of the application can be built independently from the same source code. Though running applications requires an installed version of AIR, most computers already have it, since the runtime is part of the Adobe Reader distribution.

Mozilla Prism, in its turn, is a site-specific browser that works exclusively with a single web application, allowing it to run from the desktop. Unlike AIR, Prism cannot be used to create applications that run locally, but rather provides a Flex developer with a desktop interface for an existing web application. It does not take anything more than Flash player for Prism to run Flex applications, and most computers are likely to have it installed.

 

Building desktop vs. web apps

The question that logically arises from the above-mentioned is why would an Adobe Flex developer prefer to create a desktop application instead of running a web-based version? The reasons are quite obvious:

  1. Desktop applications rely on local resources and do not address a web server for every operation, which considerably adds to their performance.
  2. Bandwidth consumption is substantially reduced, even in case of web-active applications that still run locally, not on a remote server.
  3. The performance of a desktop application cannot be affected by a browser crash, which is an issue critical not only for a Flex developer, but also for any Internet user.
  4. Besides, running in a browser sandbox means greatly restricted access to the local file system and limited cross-domain support.
  5. Finally, having a web developer create a desktop application can also prove to be cost-efficient in terms of Adobe Flex development productivity, since a single team of programmers can work on both desktop and web applications.

 
With AIR

In addition to these general reasons, Flex Builder can be used to build AIR applications from an existing Flex code base, stripping it of web-specific functionality and adding desktop elements. Likewise, an Adobe Flex developer can include all the common code in a separate project and reuse it for building both web and desktop applications.

Furthermore, having a web developer create a desktop application can also be beneficial in terms of development productivity. Being able to employ a single technology to create and build both web and desktop applications means reduced development time and saved effort, as well as a lack of necessity to master other technologies and languages.

 
With Prism

The use of Mozilla Prism is even more straightforward, since only two steps are required: the installation of Prism itself and adding a URL of the application one wants to bring to the desktop. The only disappointing thing is that Prism lacks functionality to reach beyond the scope of a browser sandbox, providing just an opportunity to create a desktop shell for a web application.

So, why should one care about Prism, anyway? Actually, it is the unparalleled simplicity that is so attractive. There is nothing special for a Flex developer—you just bring your application to the desktop with a few clicks, without modifying the code at all. After that, the resulting application can be run on any computer requiring no additional runtimes to be installed. For Flex applications, only Flash player is needed.

 

Conclusions

An Adobe Flex developer who wants to build a desktop application that works offline or needs to improve a web application’s performance by utilizing local resources, might still want to stick with Adobe AIR. Those who stress building such an application quickly and easily over optimized performance and offline capabilities should give Mozilla Prism a try.

Either way, for IT executives, the two technologies mean software vendors can have the same Flex developer team do what would otherwise take two teams to achieve.

 

Further reading


The post was written by Michael Fedotov and edited by Alex Khizhniak.