What follows are notes from a session I attended at the last Web 2.0 Expo. While a few months old, the notes here are still very relevant. As a Nokia employee, some may think it strange for me to blog about how to develop for the iPhone but I think not, the priciples I share here apply to all mobile developers.
The presentation was given by Toby Boudreaux. Point of clarification before we begin. For those unfamiliar, an anti-pattern is a play on design patterns which are re-usable design components that emerge to become commonly understood elements used in User Interface design. A common user interface anti-pattern is the hover text box that obscures an otherwise important part element of the user experience.
On to the iPhone UX Anti-Patterns from Toby’s talk
Billboards & Splash Screens
While it your logo may look cool in all it’s glory and scrolling credits for everyone on the team including the office dog is also seems like a nice thing to do, your users will tire of it after a few times and will get down right annoyed if they use your app with any frequency. Best to tuck this stuff down as a sub-menu off the About menu. In short, “don’t put branding ahead of users.”
Sleight of Hand
Do not use the same area for different or conflicting functions. Think of muscle memory and make sure that the same gestures are related. Toby illustrated the problem with the iPhone’s slide to unlock and decline functions.
A quick and easy way to avoid this anti-pattern is to print out wireframes of your design and overlay each screen on top of each other over a lightbox and to be careful where your exit or quit button is going to be, assuming that your users may add an extra tap by mistake.
App as OS
When the app is running in a mobile environment, it tends to take over the screen giving the user the impression that the application is the OS. Rather than attempt to mediate the entire experience of the device through your app, defer to specialized apps which are designed to handle those functions. Use the YouTube player for videos, the browser for web pages.
Tone down any loud notifications. You can provide a setting to make them louder but remember, you’re embedded into a mobile device which is going to be carried everywhere. If possible, avoid pop-up error messages and embed your error message into the interface.
If your app requires a user account, make sure every screen that can be accessed without a login has a link to registration or sign-up. The last thing you want to do is have a potential registered user land on a login screen with no link to a page where they can register.
The High Bar
Allow for progressive degradation of your application. Remember, you’re app is operating in a mobile environment. Assume that connections will be flakey, the phone not running the latest OS. Remember the guy on the bus that’s just gone into a tunnel. What about the one-handed user on the subway? Can he they use your app effectively?
Make sure your application is able to persist state. There’s nothing worse than having to step back through to get back to where you were. The illusion of fast task-switching, pausing and unpausing, requires state persistence.
Take care not to take over and re-define a popular gesture. It’s a balance because you also don’t want to try and be too clever and introduce a new behavior that has too steep a learning curve.
Don’t rotate the screen for the heck of it. Fancy UI elements to be used in moderation.
Don’t hijack audio that is already playing. This is a common one. How many times have you been listening to music and then start playing a game that requires you jack the volume way up. When you quit out of the game, you blast your ears off as your music player comes back on.
It’s much better to blend the sounds so the user can take care to switch to the background app and shut it down or pause it.
Apple has done a lot of careful thinking about interface design on the iPhone expanding their work on the Human Interface Guidelines to the mobile environment. The iPhone HIG is a good resource for anyone designing for the mobile environment.
Hope these iPhone UX Anti-Patterns were useful. Can you think of any others?