At the time of writing this, we distribute Spotify for Mac OS X as a regular DMG (disk image). The user experience is not really what I would call smooth:
Now, for a unexperienced user double clicking the app icon inside the DMG feels like a natural action. It’s there, I’ll just open it then. Later, she restarts her computer, the DMG gets unmounted and “Hey, where’s Spotify?”.
Our solution is to use an internet-enabled disk image which automatically unpacks Spotify upon download. We then use some magic in the app to check if it was launched from another place than the Applications folder.
The user double-clicks the icon – Spotify launches and detects it’s running from the Downloads folder, asking the user if Spotify should move itself into the Applications folder.
Selecting “Move to Application folder” causes Spotify to automatically move itself into /Applications
(or ~/Applications
if it exists) while still running.
The “move” logic is based on free code by Andy Kim at Potion Factory.
But what happens when the DMG is not downloaded and automatically unpacked?
Ie. manually mounting the disk image.
Example: when using a browser that does not handle internet-enabled DMGs.
Well, we need to handle that case too, of course. We created a version of Lets Move which supports moving applications launched from a disk image.
Manually mounting the Spotify DMG will look like this:
Double-clicking the app will show the same “Move to Applications folder?” dialog.
Recently Alexander Limi (interaction designer at Mozilla) wrote about “Improving the Mac installer for Firefox” where he outlines the problems. John Gruber quickly responded by highlighting the problems with an installer, which was Alexanders initial idea of a solution. Alexander and Mozilla revisited their solution, aiming to use LetsMove by Andy Kim.
We have published our modified version of LetsMove here: http://github.com/rsms/lets-move-cocoa. It includes the ability to move applications launched from read-only disk images as well as Spanish and French language translations.
For the record, this is how the previous Spotify disk image looked like: