Even if you manage to nail all aspects of cross-platform programming and write a great application, you can still create a horrendous user experience through poor application packaging. The delivery of an application, its installation, and even the way it is launched affect what a user thinks about an application. You'll want to spend as much time packaging up your application as you do tweaking control and font sizes, editing line separators, and monitoring threads in your code.
When actually packaging and delivering an application experience to an end user, several different options are available to developers on the Java platform. However, when boiled down to their basic states, there are really just two categories of application delivery:
These applications are installed and run completely on the end user's physical machine. The user buys a CD, runs an installation program, and buys new software to perform an upgrade. Typical examples are word processors, spreadsheets, music players, and anything else you might buy in a box at your local computer store.
Web-delivered applications may run on a user's machine, but are installed from an online web site. They are often more volatile in nature, releasing upgrades (also installed from a web site) every few months, if not every few weeks. All the updates installed via the Mac OS X System Preferences control panel are web delivered.
This chapter looks at the first of these two categories and details Mac OS X support for standalone applications. The next chapter explores web-delivered applications. You'll understand how both are options on a Mac OS X platform, as well as how to package and deliver each.