I have a complex project running in one of our biggest clients (one of the best worldwide in it’s area), and the deploy machines are all Apple.
Since my software is written in Java, it runs on every OS under the Sun (oh my…), but on the Mac you really want to go the extra step and integrate nicely with OS X.
So I picked up my app and created an Application Bundle. I love the concept: a simple directory structure, a couple of XML files, and your data. Install and uninstall is a simple drag-and-drop affair. Every OS should have a similar concept; it might not be the best strategy mass-storage-wise (and Apple now recommend you ship your app with the JRE “integrated”, ouch), but it’s so simple and innocuous, it almost slaps you in the face. I’ve actually touched this subject in this post. Kinda of reminds me of AmigaOS 3: the OS was all modular (datatype files, etc), and app installs/uninstalls were also a drag-and-drop affair.
Then I hit a wall: I don’t actually know what command the JavaApplicationStub will run, and my RMI server was not being launched properly (I need to specify the hostname for RMI as a Java property). But, as always, a simple look at Apple documentation and the thing is working great (it required a simple fine-tuning of the Info.plist XML file). Apple might not be the be-all and end-all company on this planet, and you know Apple is not exactly in love with Java anymore these days, but for me they always came through with a solution.