By John Gruber
Learn anything, anywhere with Skillshare. Get your first two months free.
iPhone developers Craig Hockenberry (Twitterrific) and Fraser Speirs (Exposure, a Flickr client) wrote two interesting pieces last week on the design and scope of iPhone software, and both touched on the part of any design process that is the hardest to write about: conception.
Both referred to the fundamental rule for iPhone UI design I proposed last month: Figure out the absolute least you need to do to implement the idea, do just that, and then polish the hell out of the experience.
From the very first day, we tried to do this. And it turns out that “doing as little as possible” was one of our greatest challenges. (I’m using the plural pronoun here because the interface design was a team effort.)
To achieve this goal, you have to find the “nut” of your application. The thing that defines what you’re working on. Even more targeted than John Geleynse’s “application definition statement.” Something that you think of each time you start up Xcode, or every time you answer a customer email, or when you’re planning features for a new release. […]
For Twitterrific, our core function is reading.
I don’t disagree with any of that. I’ve just found that the definition of “the absolute least” is highly elastic.
Flickr is a big site, with tons of features and the best site API on the internet (argue with me on that if you like, but Flickr seriously dogfood their own API, which is not true everywhere). Even having been deeply involved with Flickr as a third-party developer for over four years now, I still find that I’m surprised by the disparate ways that people use Flickr. […]
In such a large and complex site as Flickr, with so many possible use cases, the question of which features constitute a minimum set is really quite tricky, and the “minimum” set isn’t the same as “small”. Exposure certainly doesn’t cover the entire Flickr API. For example, you can’t edit the metadata on a photo. You can’t join groups. In general, account management is not broadly supported.
Twitter, taken as a whole, is an almost fanatically minimalist service. You post 140-character messages and you read the messages from the people you choose to follow. That’s about it. But even given how little there is to Twitter as a service, there are different nuts to choose from, and we’re already seeing wildly varying UI designs in iPhone client software. Not just how the clients look, but the entire interaction model.
Twitter clients are proving perhaps the ideal model for case studies in iPhone UI design. And if Twitter clients can be so varied, it’s easy to see how in larger problem domains (like, say, Flickr client software), the possibilities become daunting.1
Consider the Big Bang. One moment there was nothing, except for everything condensed into a single infinitely dense point. Then, one minuscule sliver of a second later: the universe. Nothing was yet formed, all the true work of forming stars and galaxies remained ahead, but the framework, the laws of physics, were set, and the rest was thereafter inevitable.
This is what everyone contemplating a new creative endeavor craves: that in the moment it turns real, to get it right. To frame it in such a way that the very act of framing propels the project toward an inexorable destiny.
You want to get it right because getting it right can make everything easier thereafter. But really, it’s because getting it wrong can be devastating. You might wind up putting thousands of man hours of work into a project that was doomed by a decision that was made in a second at the inception.
After that moment of conception, what it is, however nascent, however raw, becomes part of the process. You’re adding to it. Changing it. Removing parts of it. But there is an it, where before there was not. There’s something magic and magnificent and frightening about that part in the creative process before there is an it, when you decide just what it should be.
This is the real shame of certain app categories on the Mac where, for whatever reason, competition no longer exists. There are so many different ways one could design an email app (to take but one example), but the only two serious IMAP clients in active development are Apple Mail and Entourage. ↩︎