Three Things to Consider When Building Desktop Applications
There are many options available for building desktop applications; however, before you start there are three things you must consider. First, decide whether to build a cross-platform application or target a specific operating system. Next, choose the development tools to build your application. Finally, select an installation technology to deliver your application. Each of these decisions depends on a number of factors including your target audience, the type of application that you are building, and the distribution method that you plan to use.
In choosing a development tool, first consider the platforms (operating systems) on which your application must run. The top three operating systems are: Windows, Mac and Linux. If you want your application to run on more than one of these, you should consider using tools that provide cross-platform capabilities, such as Eclipse, Flash and Adobe AIR. These types of tools can speed development and give you a larger audience. However, they can also add significant overhead in terms of distribution size, and may affect performance. Carefully examine the run-time requirements of the development tools you choose to determine the impact on the performance of your application and the ability to distribute it. Consider your distribution method—if users are downloading your application then size and dependence on additional components is a concern, whereas if you are going distribute your application on a CD or similar media, then size is generally of little concern. Also, review the run-time requirements of your development tool. You will most likely need to distribute extra software or require your users to download and install additional components. Some tools allow you to bundle these components with your application, but others may require a separate download from their site, which can complicate your installation process.
A more traditional approach to application development is to use a programming language such as C++, Pascal, or Java. This method requires a higher level of technical skill, and your application will not be as readily platform independent, although platform independence is still achievable. There are many development tools available, such as Visual Studio, C++Builder, and CodeWarrior. The advantage with traditional development is that you can make smaller applications that are less dependent on other software or components. If you are targeting a single platform and have the technical resources, this is a very good option for building desktop applications.
With traditional development there are many frameworks and code libraries available to help speed your development time. Frameworks provide a structure to build on while hiding much of the complexities of the operating system. Libraries add additional functionality and simplify common tasks such as parsing XML files or manipulating images. Frameworks and libraries are great for reducing your work, but take care in choosing them because they typically add significant size and may require additional run-time components. Also pay careful attention to code quality, especially when using open-source or third party offerings. Some popular frameworks include MFC and .NET (Visual Studio) and VCL (C++Builder). SourceForge is an excellent source for obtaining open-source frameworks and code libraries.
Installers are a very important part of building desktop applications. It is the first thing your users see, so it is important that it looks professional and works properly. There are many good tools available, such as InstallShield, Advanced Installer and NSIS. Most tools produce a self-running executable and some can also produce MSI files which use the Windows Installer technology. A typical installation program has a wizard to walk the user through the installation steps. The wizard starts with a Welcome screen which typically displays a description of the application and a EULA (end user license agreement). Next, optional items are presented, the installation begins, and a progress bar is shown. Your application should also include an uninstall option, typically located under Control Panel – Add/Remove Programs. All of the major installation tools provide these functions automatically.
Software developers are always looking for ways to monetize their offerings, and because the current trend is to distribute applications for free, it can be difficult to generate revenue from your products. W3i’s InstallIQ technology can help you earn revenue from your distribution by offering additional products during your installation process. Implementation is simple—InstallIQ manages the wizard process and runs your installation along with any optional products the user has also selected. To use the InstallIQ wrapper, you need a silent version of your installer, which most install tools can do with a simple command-line switch so there is no extra work involved.
Building desktop applications can be a daunting task, but there are many tools and resources available to help with this effort. You must plan carefully and assess your needs to ensure that you choose the right tools and platforms. When you are ready to distribute, the W3i Application Network, featuring InstallIQ technology, is a great way to recoup your development costs, especially if you are offering your application for free.
Bill Zitomer, Software Development Team Lead, W3i, LLC
Bill uses his over twenty years experience to build W3i’s core desktop products as well as back-end technologies.
