Application Installation Standards?
By Robert Pritchett
It’s all about packaging.
First some levity - iPod Parody
http://video.google.com/videoplay?docid=36099539665548298
Dan Frakes wrote these “Rules for the Distribution Road” over 3 years ago - http://db.tidbits.com/article/07167
And this may appear a bit dated by Scott Knaster - http://www.mactech.com/articles/mactech/Vol.20/20.01/DistributingYourSoftware
/index.html
Followed by this from Peter Hosey in 2006 –
http://boredzo.org/blog/archives/2006-01-16/how-to-distribute-your-software
And of course, Apple had a few choice words on the subject -
http://developer.apple.com/documentation/DeveloperTools/Conceptual/
SoftwareDistribution/Introduction/chapter_1_section_1.html
Disk Imaging - http://en.wikipedia.org/wiki/Disk_image
In the non-Mac environment there are a lot of different Disk Imaging tools –
http://disk-imaging-software-review.toptenreviews.com/
http://www.programurl.com/software/disk-image.htm
For the Mac - http://guides.macrumors.com/Disk_image
http://www.pure-mac.com/compen.html
From http://www.xvsxp.com/files/compressed.php we read this old article-
“In addition to ZIP, OS X supports a wide range of compression formats, including:
• bzip2 (.bz, .bz2)
• cpgz (cpio gziped)
• cpio (.cpio)
• gz (.gzip, .gz)
• tar (.tar)
• tgz (tar gziped)
• tbz, tbz2 (tar bzipped)
• compress (.Z)
Since ZIP is one of the most common formats, OS X makes it extremely easy to create a ZIP archive that contains any file or files. Simply select the file(s) and choose Create archive of... from the contextual menu:
Unfortunately, this is essentially the extent of OS X’s ZIP abilities. For example, once a ZIP archive is created, you cannot add additional files to it — instead, you’ll need to delete the archive and create a new one from scratch that contains the additional files. OS X also lacks the ability to create or decompress encrypted ZIP files:
Aside from the above compression formats, OS X also has its own disk image format called DMG. DMGs can be created through Disk Utility in the Utilities folder. Specify a certain filesize and Disk Utility will create and mount an image of that size, allowing you to add files as you would any disk. You can then convert the image to a compressed format. Alternatively, you can create a disk image from a folder and save it as a compressed disk image. Disk Utility also allows for the encryption of disk images using AES-128 encryption.
Disk Utility can also be used to create Internet-enabled disk images, which greatly simplify the process of downloading software from the Internet. Such images will automatically uncompress themselves (when downloaded via Safari) and throw away their original compressed file, saving the user the trouble of having to do so manually.”
If security is an issue, create an encrypted image - http://www.securitytechnique.com/2003/11/macencdisk.html
Now it’s our turn to go over the topic of distribution:
We aren’t so much talking about disk imaging as we are about distributing software in the most efficient and economical way. How do we reduce the painpoints? Less keystrokes make happy Mac-folks. Keeping the installation of the application “out of the way” requires a level of trust between the developer and the purchaser of the product.
We could start with one of these tools for creating packages for distribution –
FileStorm - http://www.mindvision.com/filestorm.asp
DropDMG - http://c-command.com/dropdmg/
DMG Enabler - http://zwei.gotdns.com/zweisoft/
DMG Packager - http://freespace.virgin.net/jeremy.dronfield/skoobysoft/skooby/products.html
InstallGadget - http://www.sweattechnologies.com/InstallGadget/
Giles Turnbull asks for more intelligent installation processes for Mac OS X
http://www.oreillynet.com/mac/blog/2007/03/designing_disk_images.html?CMP=OTC-13IV03560550&ATT=Designing+disk+images
And I’m not even going to go down the tempting StuffIt road.
The usual method of installing an app on a Mac follows this process - http://guides.macrumors.com/Installing_Applications_in_Mac_OS_X#Disk_images
DMG VS. ZIP
Dow we ZIP or DMG? Over on Adium, the consensus is that DMGs are wrong - http://www.adiumx.com/blog/2006/11/is-dmg-confusing.php
Yet Apple says that DMG is the way to go. And when Apple speaks, we need to listen. Developers have been burned before because they didn’t pay attention to the strong suggestions by Apple.
Internet-enabled Disk Images (IEDs)
Discussed at great length on the Macintosh Business Software Forum… some like it hot and others like it cold. Some ZIP and others DMG and most like to distribute their products via Internet-enabled Disk Images or IEDs.
Apple calls them “Product Containers” - http://developer.apple.com/documentation/DeveloperTools/Conceptual/
SoftwareDistribution/Containers/chapter_3_section_1.html
John Siracussa wrote back in November 2004 -
http://arstechnica.com/reviews/apps/delicious-library.ars/2
“In short, this is truly the age of downloading. On the Mac platform, that means disk images. Apple’s disk image format supports all of the extended features of the Mac OS (resource forks, custom icons, stateful icon sizes and positions, etc.) as well as optional encryption, compression, license agreements, and even auto-expansion and clean-up.
Just as physical packaging makes an important first impression for hardware, so too can downloadable software packaging be elevated from utilitarian to a delight. On Mac OS X, the first test of quality downloadable software is this: does it come as a disk image, or is it compressed or packaged using some other standard? While StuffIt, zip, and even tar and friends are all technically compatible with Mac OS X, disk images combine the best features of all of them and have the nicest user experience.
Apple has extensive guidelines for packaging and distributing software for Mac OS X. For disk images, there are two “best practices”. The first is what Apple calls Internet-enabled disk images. When an internet-enabled disk image is downloaded, it is automatically mounted, its contents are copied out of it, and then the disk image is unmounted and moved to the trash.
Since most Mac OS X applications can and should be single-icon, drag-installed bundles, the user experience of internet-enabled disk images is nicely transparent. The user clicks a download link in a web page, waits for the data transfer to complete, and then finds a single, uncompressed, ready to run application icon in the download location. From there, he’s free to drag it anywhere he wants, or even run it from its current location (usually the desktop).
But while that’s efficient and straightforward, it’s also essentially the total elimination of packaging. What if a software developer wants to make an impression? By foregoing the auto-copy-and-clean-up features, the developer has the entire contents of the disk image window to play with. Thanks to the OS X Finder’s ability display custom image backgrounds in windows, the results can be quite attractive.
Issues with Internet-Enabled Disk Images
Apparently today IEDs only work with the Safari browser and no others and also apparently you need Mac OS X Tiger or later. If your app is designed for Mac OS X 10.4.x or later, then this is not an issue. However, if you ZIP, you have a greater potential purchasing public.
Another issue is that with IEDs, the installer goes away automagically and if something goes goofy, the app has to be re-downloaded and reinstalled.
I use Speed Download http://www.yazsoft.com/ as the archiving function, so reinstalling the app is not an issue after dragging the DMG to the trash, because the package is still harbored in the Speed Download application.
Watch Leopard and see how installing apps are handled. Apple usually has a reason to ask developers to “follow the recommended procedure”. It will be very interesting to see how the Apple readdresses the issue..
Like Giles Turnbull’s request for standardized ways of installing, I too would like to see consistent behavior between apps from developers. I like to know where apps are located instead of guessing where they might be and I like them to clean up after themselves, so I don’t have to.
---------------------------------------------
TOC