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.
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.
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:
- Desktop applications rely on local resources and do not address a Web server for every operation, which considerably adds to their performance.
- Bandwidth consumption is substantially reduced, even in case of Web-active applications that still run locally, not on a remote server.
- 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.
- Besides, running in a browser sandbox means greatly restricted access to the local file system and limited cross-domain support.
- 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.
In addition, 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. 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.
The use of Mozilla Prism is even more straightforward, since only two steps are required: the installation of Prism itself and adding the 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.
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.