Patterns to avoid for iPhone developers

Chris Caceres · April 2, 2009 · Short URL: https://vator.tv/n/7ce

Avoid the anti-pattern says Toby Boudreaux, who spoke at the Web 2.0 Expo in SF

 With so many applications coming out every week on the iPhone, users have become accustomed to a certain style and way of application functionality on the device. 

Toby Boudreaux, is writing a book all about iPhone application development, which is being published by O'Reilly.  He spoke at the Web 2.0 Expo in San Francisco, Ca., about iPhone anti patterns.

An anti-pattern, according to Boudreaux, is a design pattern that causes at least as many problems as it solves, despite better options existing. 

Here's a list of main ones to avoid, according to Toby:

Billboards:

Splash screens are evil, even when they are pretty.  Nobody wants to see your logo at the beginning of launching your application.  Instead, the user should be able to use your app immediately.  Instead, try showing the "progressive reveal," which means a structured screen minus the data it is fetching, to give the impression your application is fetching and loading data.

Sleight of Hand:

Consider muscle memory a habit.  Always test your applications by overlaying screens and seeing where the users fingers will end up.  Always test for potential accidents, for example, Facebook has this back button which ends up being right on top of the logoff button - doesn't work very well if the user is pounding away on the buttons in order to get to the beginning of the application.

App as an OS:

iPhone apps should be specialized, optimized, and be able to interoperate.  Stay away from built in browsers.  Make use of what Apple provides you, such as the Safari broswer, Maps, Mail and SMS.

Bullhorns:

Don't use Apple's standard bullhorns.  They are jarring.  Keep your notifications passive.

Bouncer:

Don't be a bouncer and not let users into your application if they aren't registered.  Allow users to register within your application.

On phone shaking:

Basically, don't make me shake my phone, don't make me share my location.  LET me chose to do these things if I want to.

Memory Lapse:

Flushing data between application sessions is very frustrating - save data in the application so I don't have to reload things when I exit.

Gesture Hijacking:

Don't make your users learn new gestures just to use your application.  Stick to familiar ones.  If you make users learn new touch patterns, you inject a new learning curve which the user may not want to learn.

Spin Zone:

Yes, a nifty feature of the iPhone is the ability to rotate the screen if necessary.  Don't implement this functionality unless your support rotation fully.  Match the user expectation for the type of application you've built.  Basically, don't add rotation in just because you can.

Sound-off:

Here's a little secret, the iPhone is simply an iPod with a phone built in.  Do not hijack the audio output for exclusive use. Let the user have an option whether they want to hear your audio, or the audio they are playing from their iPod.  Blending audio is easy.

In the end, plenty of anti-patterns are emerging.  You can differentiate your application but do not differentiate at the expense of consistency.  And always remember, you can compete in the App store, but you must cooperate on the device.

(image source: 4.bp.blogspot.com)