One of the things that I’ve always loved about the Mac is its cohesiveness. Everything just flows. It’s the experience that careful attention to design has created.
When I open the lid of my MacBook, OS X springs back to life, just as expected. When I press CMD+I in Safari, the page I’m viewing is opened Mail in a new message, ready to be sent. When I press Shift+CMD+P in NetNewsWire, the news item I’m viewing is sent over to MarsEdit in a new blog post, ready to be quoted and posted. With Yojimbo, if I want to save a serial number, I highlight the serial number, bring up Yojimbo’s Quick Input Panel, and Yojimbo knows its a serial number and brings up the appropriate template. Same goes for passwords and bookmarks.
I mention these apps specifically because they are all very Mac like. Each of them feels right in the Mac environment. I’ve tried other email services and clients, mainly web based, but I always come back to Mail because it fits. A Mac app may not have all of the features of its competitors, but if it fits, if it feels right in the Mac environment, if it goes along with the flow of how I use the Mac, that’s the app that I’m going to come back to use again and again. It’s difficult to quantify exactly what makes a Mac app, but here’s a short list of how I judge.
Or perhaps a better description of this category is “does what I expect it to do.” A great example of this is Yojimbo and Evernote. Evernote is a great app, and an awesome service, especially if you work with both a Mac and a PC, and carry an iPhone. The difference is that when I copy something from one of the other applications, and then press the hotkey to import whatever I’ve copied, Yojimbo brings down its quick import panel, and Evernote jumps to the front and demands my attention. Perhaps I’m doing this wrong, but if I am, it’s not obvious how to convince Evernote to do what I want.
The Human Interface Guidelines over on the Apple Developer site say to use the standard controls and buttons that are available in the developer tools. Those are what Apple (s aapl) uses, and it’s best to keep a consistent look and feel to all the applications. Now, Apple doesn’t always follow its own advice, but if an application is bringing its own controls to the table, it stands out. That being said, there are always going to be times to break the rules.
Cabel Sasser from Panic once rewrote an entire toolbar because of three pixels of a control didn’t match up. That’s attention to detail, and the kind of polish that makes a Mac app beautiful as well as functional. I once attended a CocoaHeads meeting where much of the discussion focused around ensuring that the lines drawn by an application to separate the different areas of it were crisp and clean, while the screen was zoomed in as far as it could go. Attention to detail creates quality interfaces.
Apple has worked hard integrating the default applications that ship with OS X. They have also worked hard at making the data stored in these applications available to developers in their apps. When developers do not take advantage of this integration, I’m left wondering why. I’m sure it’s a different reason for each application, but for the most part, I notice it in apps that have been ported from other platforms. Keychain, iCal, Address Book, Mail, iPhoto, all of these services are available to tie into. A good Mac app takes advantage of this, and a great Mac app makes their data available to other apps as well. Integration makes my work, flow.
Being able to launch an application, and know that it is going to perform as expected, every time, is also one of the trademarks of a true Mac app. Without stability, none of the other points I’ve made mean anything. It’s so important, that it’s almost not even worth mentioning, if it were not for the random application that seems to have it all, but then crash three or four times in a single day.
As a burgeoning developer myself, I know how hard it is to meet the standards of the Mac community. However, developers have raised the bar again and again, and now create some of the best software for any platform.