Apple’s iOS Human Interface Guidelines (HIG) (PDF) provides great advice for creating an app for iOS. However, for an app to really fit in with iOS, it should embrace the unwritten conventions that Apple follows in their apps. To help myself and other developers stay on the right track, I’ve assembled a guide with lots of the things that should probably be in the HIG but are not. I’ll continue to update this guide as I see apps with “incorrect” user interfaces. I’ve included screenshots of the right way to do things (usually from Apple’s apps or Iron Money for iOS).
Button placement
Buttons should almost always go on the right first, then the left. Additionally, add buttons should go on the right, and edit buttons should go on the left; there are very few circumstances in which this rule should be broken.
Use “Done” buttons for adding or editing data from a list; use “Save” to save a value to an editing table. In general, if you have a list of objects, a user should be able to select an object, then tap “Edit” to edit it, and tap “Done” to save their changes. If an object has an attribute, it is permissible to let them tap the attribute and then tap “Save” to save the change to that one attribute (because they’re not “done” with the entire editing process).
Settings screens should have a “Done” button in the upper right.
Table views
When making a custom UITableViewCell, follow the other UITableViewCell’s styles as much as possible.
When a user selects something from a table view with checkmarks, the checkmarked cell’s text should not be in black, but in blue.
On iPhone/iPod touch, a search feature should usually be hidden underneath the navigation bar until it’s pulled down by the user. Then, above the status bar, there should be a solid color.
Don’t use the detail disclosure icon unless you actually have details to disclose when the icon is tapped.
Keyboard
Almost all keyboard types have some sort of “done” button. When developing an app, it’s important to change the done button to whatever makes the most sense in that particular view. For example, if you have multiple text fields that the user might want to move between, changing the done button to “Next” on the keyboard (and moving the user to the next text field when they tap the next button) will make your app easier to use.

The keyboard uses a “Next” button in the bottom right because the user has multiple text fields to complete.
iPad popovers
Many iPad apps use popovers to display additional views once a button is pressed. Some apps use popovers to allow users to choose between different things; the App Store allows you to choose between different categories, the iTunes app allows you to choose different genres of music, etc. When a user selects one of the options provided in the popover, the button should update to include their selection.
Language
Staying consistent with the text that Apple uses is a great way to have an interface users might already be familiar with and helps with localization.
Many apps provide in-app passcode protection. Apple’s Settings app is a great resource for deciding how to title all of the buttons and views associated with passcode protection.
If your app allows users to sign in and out of a service, you probably provide buttons for signing in and out of the service. The Find iPhone and MobileMe Gallery apps both include this functionality. Their sign out buttons read “Sign Out” and display an alert view with the text “Are you sure you want to sign out?” and the buttons “Cancel” and “Sign Out”. If you include text with the username, it should read: “Signed in as: %@” (replacing %@ with the username).
The Devil is in the Details
iOS is a great platform for creating amazing user experiences. Apple’s apps provide a great foundation for designing user interfaces for iOS. Breaking the rules is okay, but be wary of unintentionally breaking the unwritten rules of designing apps for iOS.