Thursday, January 22, 2009

Address Book UI Design Flaw

Apple provides classes to make it easy to let your user select somebody from their iPhone's address book (aka the Contacts application), or to add a new person to their address book. But in an exceptionally rare example of a complete UI miss on Apple's part, there is no easy way to let the user add a new contact when you are prompting them to select an existing person. You have to know beforehand whether they're going to select an existing person, or add a new one. You can't just give them a single + button in a table and easily do both.

Here's what the UI for selecting an existing person looks like:


So... why couldn't we just have the currently-blank left bar button item be an "add new contact" (+) button that dismisses the address book and presents the UI for adding a new person? Why make us go through two separate steps. I mean, not everybody knows exactly who is already in their address book off of the top of their head.

Anyway, I spent some time poking around the header files and the class-dump of the Address Book frameworks trying to see if I could implement this functionality myself, but I started getting way into the realm of disallowed private methods so, out of fear of getting my client's app rejected from the App Store, I gave up. My temporary solution is when the user cancels their selection, I prompt them with an Action Sheet to see if they want to add a new person since they didn't select find one from their address book. It's a little ugly, but better than cluttering up my interface with an additional button. Adding a contact is something people are, most of the time, going to do once, so I really don't want to lose the space to another button.

I opened an enhancement request on this: rdar://6517666



5 comments:

Michael said...

its the same when adding a contact from the mail app. It asks first whether you want to create new or add to existing. if you choose existing and then cancel, you go back to the beginning.

so at least from a user's point of view there is some consistency...although i agree that having the option to create a new contact would be great.

m.

cyclic said...

good idea, totally agree

ScottYelich said...

I'm sorry -- I (still) just don't find the "Apple" UI way intuitive. Sure, after you *use* it for a while, you can *use* it most of the time... but I wouldn't call it intuitive. Nope, sorry.

A program should follow the ``Law of Least Astonishment''. What is this law? It is simply that the program should always respond to the user in the way that astonishes him least.
- The Tao of Programming, 4.1
I'm astonished quite often -- and not in a good way.

Edwin said...

scrub m65 kamagra attorney lawyer body scrub field jacket lovegra marijuana attorney injury lawyer

h4ns said...

What youre saying is completely true. I know that everybody must say the same thing, but I just think that you put it in a way that everyone can understand. I also love the images you put in here. They fit so well with what youre trying to say. Im sure youll reach so many people with what youve got to say.

Arsenal vs Huddersfield Town live streaming
Arsenal vs Huddersfield Town live streaming
Wolverhampton Wanderers vs Stoke City Live Streaming
Wolverhampton Wanderers vs Stoke City Live Streaming
Notts County vs Manchester City Live Streaming
Notts County vs Manchester City Live Streaming
Bologna vs AS Roma Live Streaming
Bologna vs AS Roma Live Streaming
Juventus vs Udinese Live Streaming
Juventus vs Udinese Live Streaming
Napoli vs Sampdoria Live Streaming
Napoli vs Sampdoria Live Streaming
Fulham vs Tottenham Hotspur Live Streaming
Fulham vs Tottenham Hotspur Live Streaming
AS Monaco vs Marseille Live Streaming
AS Monaco vs Marseille Live Streaming
Alajuelense vs Perez Zeledon Live Streaming
Alajuelense vs Perez Zeledon Live Streaming
Technology News | News Today | Live Streaming TV Channels