As the cult of Mac gives way to the cult of iPhone, it’s worth putting a peg in the sand around a set of design rules that define what makes an iPhone app work.
John Gruber has posited an excellent starting point with one overarching guideline for iPhone UI design:
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 this starting point he goes on to list a set of five rules or guidelines to continually parse against:
1. Each screen should display one thing at a time. That “thing” may be a list, but it should just be a list.
2. Minimize the number of on-screen elements.
3. Make UI elements large enough to be easy to tap; place them far enough apart that there is little risk of tapping the wrong target by mistake.
4. Eschew preferences as much as possible, and assume that nearly all users will use the default settings.
5. As you show more detail, conceptually you move from left to right – but it’s best to minimize how deep you can get while drilling down to the right.
Craig Hockenberry, who put me onto John’s “First Law of iPhone Development” reduces this to a one word iPhone principle: simplicity. As he points out, “doing as little as possible” can be your greatest challenge, but it will produce the highest reward – a successful app.
Craig’s methodology is to seek out the core function of your app and keep yourself true to this every time you work on it. He uses the example of Twitterrific, a Mac OS X client for managing your Twitter account. This, however, is not the core function of Twitterrific. Say what?
In fact he sees the core function, or the “nut”, of this app as being reading:
Twitterrific is all about reading what other people are doing, thinking, or experiencing. Even its secondary function, posting tweets, is related to reading. The posting interface functions as a way for you to give your followers something interesting to read.
Knowing this core function, his team at Iconfactory could manifest it within their iPhone app in a number of ways that you can read about in his post.
I really like both John and Craig’s approaches and encourage iPhone developers to adopt their thinking and build upon it.