Wincent Colaiuta: Son, don't repeat the same mistakes I made here.
Lots of good advice to keep in mind when writing your Mac app.
I really like his suggestion to practice. Most of the time, when I'm learning a new technology to use in an app I'm working on, I'll create a new sample project to explore these new apis. I can make the mistakes there and then I can take what I've learned and put that into my app. Plus, doing it this way forces me to abstract it so I can reuse the code cleanly.
And one more thing to add to his list that I've been thinking of a lot lately- don't add quality and polish on at the end. I've realized this for years, but I keep on not doing it. So when it comes towards the end of the development cycle, I'm so tired of looking at my app that I just don't feel like doing any polish and it's just ship! ship! ship!
I asked Wil Shilpley about this a couple of years ago when Delicious Library first came out, and here's what he said:
"We add polish from the word go. It's amazing how much it changes your development when you see the app working the way the user will see it. It becomes obvious early on what's not going to be clear or what's a broken metaphor. It also is inspiring, and gives you enough time to expand on the features you realize are really cool and could use even more polish. I'd say 70% of our time was spent on user interface. That's largely because so much of the work we had to do was done for free in the Mac OS X. (Parsing XML? No problem. Displaying data? No problem. Keep it in sync? No problem.)"