After this, Andy Kim posted the methods The Hit List follows for installation -- when it's run from a non-standard location, the app asks if it should move itself to the Applications folder. Andy has placed his code for moving the app into the public domain so that other developers can take advantage of it.
With so many ideas around application install strategies, we wanted to take the time to examine the current app installation structure and propose an idea for how it could be better. You could ask, "Why does it matter where my app is installed?" OR "What if I don't want my applications in Applications?" If you're asking the first question, we suggest that you read on. If you're asking the second question, you're probably pretty obsessive about app organization and this post will be covering old ground for you.
What installation methods exist at the moment? The majority of Mac app installations would fall into these categories:
- Disk image installers
- Disk image drag-and-drop
- Archive drag-and-drop
Let's dive into disk image installers first. Most of these applications prompt you to mount a disk image and then open up an Installer application that will walk you through all of the necessary steps for installation. Think of VISE X, Apple applications, Microsoft Office (optional, Office 2008 also works as a drag-and-drop install), or even HP's printer setup. They're all great, easy-to-use installers that seem to work very well for the user. But when you have an application like Firefox or Skype, you don't need a complicated Installer... that's where the next two options appear.
Disk image drag-and-drop is a method where the developer will package an application and put it on a disk image in ready-to-run format. Double clicking that file will mount a virtual disk on your Mac, and you can see the application icon (often alongside an alias to the Applications folder, with directions for copying). At that point, you're supposed to drag that application to Applications with the option to create a dock shortcut from there.
Archive drag-and-drop is quite similar to Disk image drag-and-drop, but the file downloads to "app.zip" or another type of archive format. From there, you double click the archive file and it will place that application in the same folder as the original archive (Downloads, Desktop or wherever you have your downloaded files). Some browsers will even decompress the file so you don't have to mess with the archive, just the application itself. You then move or copy the application from the archive destination folder to your Applications folder, and you're done.
These last two options require the user to know what to do with that application after it's been extracted from the archive or once the disk image has been mounted. The problem is that many users have no idea what to do or how to do it -- leading to a variety of problems. Many developers have added backgrounds to their disk images to help illustrate the proper drag-and-drop procedures, but even that isn't a fail-safe solution. Disk image installers help alleviate problems, but not every app needs a dedicated installer to make it work correctly.
Here's a real world example. I see my customers bring in computers that have Firefox or Skype in the dock... but when you click them, a disk image mounts and the shortcut opens the applications from the DMG instead of from Applications. I also see people who just launch applications directly from the Desktop or Downloads folder. "Big deal, they don't know how to organize apps... so what?" Maybe launching an application from your Desktop is only an organizational nightmare... but launching them from the disk image can really destroy the user experience by causing ridiculous load times and other, more complicated issues.
Andy explains another problem in his post: users tried to drag the application to Applications after they already launched the app from their downloads destination. He explains that this caused the application to have the "ground...cut from under its feet" by breaking essential links between application files and eventually causing the app to crash.
Ultimately, this isn't something that individual developers should have to combat in every application. This is a perfect example of how Apple tries to make the user experience easy but, in a few cases, ends up making it more complicated. If something needs be done to help remedy this problem, what should it be?
Alexander Limi's current solution: just create an installer for the Firefox application (leaving the option to drag-and-drop intact for more advanced users). Andy Kim's current solution: build the code into the application so it recognizes improper locations and offers to move itself to Applications. Given the ability to choose one or the other, I'd have to get on board with Andy's idea. It's a simple, quick test that runs only the first time the application launches... if the user wants to leave it where it is, they can. The big clincher here is that it *should* help the average user realize that having an app in Applications is going to create the best app experience.
The ultimate solution would be for Apple to incorporate a feature into the operating system or the development tools that would automatically install or offer to install applications into the Applications folder. In pre-OS X days,
We'd love to hear you weigh in on this topic, so feel free to leave your comments below.