I wanted to avoid making comment about this issue, but since StefanK started, I’ll add my 2 cents.
While it may seem trivial to add an app to a users dock in a selfish attempt to push one’s wares or to toot one’s own horn, this is hardly an ethical or standard practice and should be avoided unless under the strictest of terms. The key is to ASK FIRST. Once you have clearly told the owner/user of the computer that you would like to add something to their computer… whether it’s to the dock, the menu bar, their hard drive, whatever… ONLY THEN should you continue with your installation or changes. You should NEVER put something in the dock without the user explicitly telling you it’s OK to do so. I personally have strict terms by which I organize my computer environment, and there is little more insulting to me than someone dictating to me how my computer should be set up. If adding to the dock were a difficult thing for the user to do, I might understand wanting to put it there, but it’s simple and can be done in a few different ways. During installation or on first launch it is quite simple to merely ask the user if they want to put it in the dock or not. Don’t claim to know what’s best for your users and try to make the decision for them.
A wise, um, movie character once said “With great power comes great responsibility”. This seems like appropriate advice in this case. Just because you CAN put it in the dock, doesn’t mean you SHOULD. There are tens of thousands of pieces of software in the world, and nearly every one of them chooses NOT to mess with the dock. I believe that doing it your own way is dangerously defiant. For example, I have a printer driver/software package that insists on resetting its preferences every time I upgrade my system software, and it re-displays a status menu in the menu bar every time I upgrade. I must manually launch the program and change the setting every time, because they didn’t take the time to develop software that works like other software does. Unfortunately there’s no way to have both the driver software installed and not also have the code that keeps displaying the menu item installed, so I’m bound to dealing with the menu every couple months or getting a new printer. A user should NEVER consider not using your product because of the poorly designed or annoying software that comes with it!
Remember, your users are not ALL idiots. Yes, some of them probably need you to put it in the dock for them, because they would never otherwise find your software on their machine after you install it. But to protect the rights of your other users, I strongly suggest doing at least one of the following…
- Ask them first. During installation or at first launch, simply pop up a dialog and see if they want it there or not. If they say no, respect that and don’t ever ask them again.
- Give them an option later. Add a preference (perhaps something similar to the checkbox in many of the pref panes in the system preferences) that adds it to the dock if they decide later that they want it there. As my previous post states, “managing” your app’s presence in the dock will require a little more work, if it’s even possible or reasonable to accomplish at all, but probably worth it if this is a feature the people signing your paycheck can’t live without.
If you search around, you’ll find a lot of people who get pretty upset when an app decides to impose itself on their dock. And while apple has even been known to do this, that doesn’t make it right. As developers we must remember that we don’t own our user’s computer, and while we are sometimes required to make decisions for them that effect the functionality of our software, we are also responsible for making sound decisions about things that are merely bells and whistles. Adding too many things that go against the grain might ultimately lead to your product’s demise, as your users will simply decide it’s not worth the annoyance of keeping it around.
If all you have to do is ask first, I fail to see why you would decide NOT to take this easier and more responsible route.
As far as the naming of files and applications goes, there are many reasons NOT to use anything but alphanumeric/websafe characters. A-Z, 1-0, and ‘_’. You of course can also use space in your names when installing on a computer, but for universal compatibility and simplifying distribution, sticking to simple naming conventions is preferred. And as you’ve already found, adding a single-quote to your apps name opens you up to a whole range of potential conflicts. How can a user USE your software as they see fit if they can’t do anything but click on it’s icon in the dock and follow the narrow path you’ve laid out before them? What if they want to add your software to their automated workflow, but they can’t launch it via the terminal or a script because no scripting language can handle it’s name? What if you decide to add hooks for third-party support or plugins, and people like applescripters can’t write a script because you decided to make your name “pretty” instead of functional?
All of this begs the question, ‘Do you care about your customers… or just your profits?’ Consider that perhaps it is your customers who know best. Provide them with a piece of software that fits INTO their life, not one which they must rearrange their life around. Respect your customers. Ultimately it’s they who are paying you for what you’re creating today.
Just my opinions, of course…:o
j