I have long respected The Omni Group. It takes a special kind of dedication to focus all your resources in one direction –– especially when that direction isn't mainstream. In Omni's case, that was adopting NeXT, which never enjoyed widespread popularity. Only recently when Apple bought NeXT and created Mac OS X and iOS did Omni's focus and dedication pay off.
Needless to say, when a group of people has been creating products for NeXT, Mac OS X, and iOS for so many years, they acquire serious knowledge about the right way to do things. That's why I am excited to see their blog post, Designing Graceful, Gracious Interfaces for iPad.
I've summarized their 12 points, below.
Brutally massacre features
Constantly ask yourself, "is this app still useful to the average person without this feature?". If the answer is yes, then remove the feature. A simplified UI has many advantages. It's easier to learn, easier to understand, and also easier to develop.
Wrong ways to design an iPad app
There are two wrong ways to design an iPad app. The first way is to blow up an existing iPhone app to fill the screen. This is lazy and doesn't utilize the iPad's larger screen effectively. The second way is to take an existing iPhone app and fill the screen with controls. The correct way to design a good iPad app is much more nuanced.
Progressive disclosure
The naive approach is to use the additional space on iPad to display more controls at the same time. However, the effect is confusing for the user as they search for the feature they need amongst the clutter. Progressive disclosure hides lesser used details until they are needed. It takes an extra step to disclose them, but overall simplifies things for your brain.
Taps are cheap
It's tempting to count taps. Certainly, with desktop software, the UI was optimized to make features readily available. Mouse clicks feel cumbersome, and it's easy to think of taps as equally tedious. However, taps aren't the same as mouse clicks. They are cognitively much cheaper than mousing. iPad designers can easily require twice as many taps as clicks for the same job. This makes progressive disclosure possible.
Steering wheel zone
Well worth watching at 28 minutes into the video. The most used controls should be placed along the left and right edges of the screen –– especially in landscape mode. The users thumbs can easily target controls in that area. It also allows the entire centre of the screen to be dedicated to content and free of controls or other administrative debris.
Simple taps
Keep things simple and don't require multiple taps in quick succession or complicated gestures. Think of the sandwich problems: can the user eat a sandwich and still use the app?
There are only a few gestures are intuitive. In order of discoverability, they are: tap, drag / swipe, touch / hold, double-tap, pinch, rotate.
Friendly taps
Give the user immediate feedback. Apps feel slow or unresponsive if buttons or controls don't immediately react to user input. For example, buttons should highlight or change shading when touched. Also, help the user hit their target by making margins around buttons part of the tap area.
Forgiveness
Let users explore the app without the worry of breaking something. Documentation is scarce and users should be able to use the app without fear.
Visible and invisible modes
A common design problem with a touch-based interface is that the same gesture are intuitive for different actions at different moments in the same app. For example, in a drawing app, a gesture could mean draw a shape, move an existing shape, draw a selection rectangle to select multiple shapes, or pan when zoomed-in. How can the app figure out the user's intentions?
There are two ways to make it work. The first is to use user-visible modes. For example, switch between the drawing and browsing modes when drawing on a canvas or navigating around it. The second is to use invisible modes, which change the app's behaviour based on the preceding gestures. For example, the first tap selects a shape and the second initiates a drag, but touching anywhere else on the screen pans the canvas.
Sensible defaults
Pick defaults that make the most sense for the most people and avoid settings and preferences. Sometimes it's more thoughtful to ask a user to learn how an app works instead of asking them to configure the app.
Tactile, if not skeuomorphic
"Skeuomorphic" for software means using real-world elements as part of the user interface design. For example, making a note taking application look spiral-bound even though computers are not limited in that sense. They tend to be good for single purpose apps with simple interfaces and can be cute or comforting up to a point. However, once an app does more than the real-world element, skeuomorphic design falls apart. More versatile apps tend to have an interface that is still tactile, but not nostalgic.
Disappear
Some of the best interfaces are the ones that get out of the user's way and allow them to get the job done. After all, the point isn't to create an app with the most features, it's to help the user complete a task.