Fantastic Code – Move on Install for Apps
While I can certainly deal with the installation of Mac OS X apps, I have to say that when I see an Installer package, I cringe slightly. You never know what they are doing, and if it's not from Apple, the reasons for putting things outside the app bundle are really minimal. Sure, utilities, web add-ons, they make sense. But apps shouldn't. Period.
Then the problem is the delivery mechanism. Is it a DMG file and then the user has to drag it out of the mounted disk image into the usable drive space someplace? Sure, symlinks on the DMG make this a little easier to drag it into the Applications folder, but still, that's a pain.
Then there's the Zip file where the application is unpacked into the Downloads folder. Not bad, but again, it has to be manually moved to a better place. Better, but still not ideal.
Then there's the Move on Startup idea. Delicious Library (among others, I'm sure) has this feature where if the application is launched from a DMG image or the Downloads folder, it asks the user if they want to move the app to the Applications folder. This one-time step, along with Sparkle, is about the most fool-proof way to deliver an application. Make it a Zip, let them move it or launch it right from the Downloads folder, and then move it into it's final spot. Sweet.
It gets even better because there's a GitHub project for this behavior so anyone can make use of it: LetsMove. I haven't dug into it, but it's probably not all that hard to detect the location and the tricky part will be the move. But still... there it is. I'll have to make use of that (and Sparkle) in my projects that I take public.