AIR and Prism: Two Ways for a Flex Developer to Create Desktop Applications

Aug 27
08:28

2010

Inessa Bokhan

Inessa Bokhan

  • Share this article on Facebook
  • Share this article on Twitter
  • Share this article on Linkedin

Can a Flex developer use her/his Web development skills to build desktop applications? A few years ago the very question would have provoked genuine amusement. Disregarding the proficiency of a Flex developer, 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 or Adobe Flex developer to create desktop applications without having to leave Web skills behind.

mediaimage
While fundamentally designed to achieve the same thing,AIR and Prism: Two Ways for a Flex Developer to Create Desktop Applications Articles 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. While AIR requires its runtime to be installed for applications to run, many computers should have it already, considering that the runtime is included into a distribution kit of Adobe Flash and even Adobe Reader.Mozilla Prism, on the other hand, 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.Why would a Flex developer want to create a desktop application, anyway? First of all, relying on local resources instead of addressing the server for every operation typically enables desktop applications to run considerably faster than their Web counterparts. This is not to mention the economy in bandwidth consumption that even a Web-active desktop application provides by running locally, not on a remote server. And should a browser crash due to an error caused by one of the sites in other tabs, the application’s performance will not be affected.Besides, any Flex developer is well aware of the limitations imposed on a Web application by a browser. Running in a browser sandbox means greatly restricted access to the local file system and limited cross-domain support. Reasonable as these restrictions may be in terms of security, they can still be a hindrance to even the most well-intentioned Flex developer. By means of contrast, a desktop application is entirely devoid of such limitations.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 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. An Adobe Flex developer can utilize Flex Builder to create AIR applications from an existing Flex code base, stripping it of Web-specific functionality and adding desktop elements. Likewise, they can include all the common code in a separate project and reuse it for building both Web and desktop applications.Using Mozilla Prism is even more straightforward. To build an application, a Flex developer only needs to install Prism and specify the URL of the Web application s/he wants to bring to the desktop. However, there is a price to pay: unlike Adobe AIR, Prism lacks the functionality to reach beyond the scope of a browser sandbox and, in fact, can only create a desktop shell for a Web application. Albeit many exciting features, such as support for offline data storage and access to 3D graphics hardware resources, have been announced in Prism to facilitate a fuller Web-to-desktop transition, they are yet to be implemented.What is it about Prism, then, that makes it matter for a Flex developer? For many, it is the unparalleled simplicity. You just bring your application to the desktop with a few clicks—without code modifications or additional coding. 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.A Flex developer who wants to build a desktop application that works offline or improve her/his Web application’s performance through utilizing local resources, might still want to stick with Adobe AIR. Those who stress building the 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 they can have the same development team do what would otherwise take two teams to achieve.