The user experience of iOS-based devices revolves around streamlined interaction with content that people care about.
Focus on the Primary Task
Your application definition statement will help you focus your app on its primary task.
1. Analyze what’s needed in each screen
As you decide what to display in each screen always ask yourself, Is this critical information or functionality users need right now ? If your answer is no, decide whether the information or functionality might be critical in a different context, or if it’s not that important after all.
2. Elevate the Content that People Care About
In a game, people care about the experience; they don’t expect to manage, consume, or create content. If you’re developing a game, you elevate content by enhancing the experience with a satisfying story, beautiful graphics, and responsive gameplay.
If you’re not developing a game, you can help people focus on the content by designing your UI as a subtle frame for the information they’re interested in.
a. Minimize the number and prominence of controls to decrease their weight in the UI.
b. Consider subtly customizing controls so that they integrate with your app’s graphical style.
c. Consider fading controls after people have stopped interacting with them for a little while.
3. Think Top Down
The top of the screen is most visible to people, because they tend to interact with the device by holding the device in the following ways:
● In their nondominant hand (or laying it on a surface), and gesturing with a finger of the dominant hand
● In one hand, and gesturing with the thumb of the same hand
● Between their hands, and gesturing with both thumbs
Put the most frequently used (usually higher level) information near the top.
As the user scans the screen from top to bottom, the information displayed should progress from general to specific and from high level to low level.
4. Give People a Logical Path to Follow
Make the path through the information you present logical and easy for users to predict.
In addition, be sure to provide markers, such as back buttons, that users can use to find out where they are and how to retrace their steps.
In most cases, give users only one path to a screen. If a screen needs to be accessible in different circumstances, consider using a modal view that can appear in different contexts.
5. Make Usage Easy and Obvious
Make the main function of your application immediately apparent. You can make it so by:
● Minimizing the number of controls from which people have to choose
● Using standard controls and gestures appropriately and consistently so that they behave the way people expect
● Labeling controls clearly so that people understand exactly what they do
Be consistent with the usage paradigms of the built-in applications.
6. Use User-Centric Terminology
In all your text-based communication with users, use terminology you’re sure that your users understand.
Take care to be accurate when describing dates.
It can be confusing if you don’t account for the user’s current locale.
7. Minimize the Effort Required for User Input
Balance any request for input by users with what you offer users in return.
Make it easy for users to input their choices.
Get information from iOS, when appropriate.
When it makes sense, don’t force people to give you information you can easily find for yourself, such as their contacts or calendar information.
8. Downplay File-Handling Operations
As much as possible, allow people to manage documents without opening iTunes on their computer. Consider using iCloud storage to help users access their content on all of their devices.
9. Enable Collaboration and Connectedness
When appropriate, make it easy for people to interact with others and share things like their location, opinions, and high scores.
For iPad, think of ways to allow more than one person to use your app on the same device.
10. De-emphasize Settings
Avoid including settings in your application if you can.
Let users set the behavior they want by using configuration options in your application. Configuration options let your application react dynamically to changes, because people do not have to leave your application to set them.
Offer configuration options in the main user interface or (in iPhone apps) on the back of a view.
11. Brand Appropriately
Incorporate a brand’s colors or images in a refined, unobtrusive way.
Branding is most effective when it is subtle and understated. For the best user experience, you want to quietly remind users of your identity.
Avoid taking space away from the content people care about.
12. Make Search Quick and Rewarding
Build indexes of your data so that you are always prepared for search.
Live-filter local data so that you can display results more quickly.
It’s best when you can begin filtering as soon as users begin typing, and narrow the results as they continue typing.
When live filtering is impractical, you can begin the search process after the user taps the Search button in the keyboard. If you do this, be sure to provide
feedback on the search’s progress so users know that the process has not stalled.
When possible, also filter remote data while users type.
Display a search bar above a list or the index in a list.
Use a tab for search only in special circumstances.
If search is a primary function in your application you might want to feature it as a distinct mode.
If necessary, display placeholder content right away and partial results as they become available.
Consider providing a scope bar if the data sorts naturally into different categories.
13. Entice and Inform with a Well-Written Description
Be sure to correct all spelling, grammatical, and punctuation errors.
Keep all-capital words to a minimum.
Consider describing specific bug fixes.
14. Be Succinct
Think like a newspaper editor, and strive to convey information in a condensed, headline style.
Give controls short labels, or use well-understood symbols
15. Use UI Elements Consistently
Follow the recommended usages for standard user interface elements.
For an app that enables an immersive task, such as a game, it’s reasonable to create completely custom controls.
Avoid radically changing the appearance of a control that performs a standard action.
To avoid confusing people, never use the standard buttons and icons to mean something else.
16. Consider Adding Physicality and Realism
When appropriate, add a realistic, physical dimension to your application. Often, the more true to life your application looks and behaves, the easier it is for people to understand how it works and the more they enjoy using it.
Think of the objects and scenes you design as opportunities to communicate with users and to express the essence of your app. Don’t feel that you must strive for scrupulous accuracy. Often, an amplified or enhanced portrayal of something can seem more real, and convey more meaning, than a faithful likeness.
Use appropriate animation to further enhance realism in your application. As
much as possible, make sure your virtual views and controls mimic the behavior of the physical objects and controls they resemble.
17. Delight People with Stunning Graphics
Rich, beautiful, engaging graphics draw people into an application and make the simplest task rewarding.
Consider replicating the look of high-quality or precious materials.
When appropriate, create high-resolution artwork.
In most cases, scaling up your artwork is not recommended as a long-term solution. Instead, try creating your artwork in a dimension that is larger than you need, so you can add depth and details before scaling it down.
Ensure that your launch images and application icon are high quality.
Remove hard-coded values that identify screen dimensions.
18. Handle Orientation Changes
In all orientations, maintain focus on the primary content. This is your highest priority.
Think twice before preventing your application from running in all orientations.
If your application interprets changes in device orientation as user input, you can handle rotation in app-specific ways.
Take advantage of the one-step change in orientation to perform smoother, often faster rotations.
On iPhone, anticipate users’ needs when you respond to a change in device orientation. Users often rotate their devices to landscape orientation because they want to “see more.”
On iPad, strive to satisfy users’ expectations by being able to run in all orientations. As much as possible, your application should encourage people to interact with iPad from any side by providing a great experience in all orientations.
Pay attention to accelerometer values.
Follow these guidelines as you design how your iPad app should handle rotation:
Consider changing how you display auxiliary information or functionality.
Avoid gratuitous changes in layout.
When possible, avoid reformatting information and rewrapping text on rotation.
Provide a unique launch image for each orientation.
If it’s essential that your application run in only one orientation,
you should:
Launch your app in your supported orientation, regardless of the current device orientation.
Avoid displaying a UI element that tells people to rotate the device.
Support both variants of an orientation.
If your application runs only in landscape, people should be able to use it whether they’re holding the device with the Home button on the right or on the left.
19. Make Targets Fingertip-Size
Give tappable elements in your application a target area of about 44 x 44 points.
20. Use Subtle Animation to Communicate
Subtle and appropriate animation can:
● Communicate status
● Provide useful feedback
● Enhance the sense of direct manipulation
● Help people visualize the results of their actions
Add animation cautiously, especially in applications that do not provide an immersive experience.
Make animation consistent with built-in applications when appropriate.
Use animation consistently throughout your app.
21. Support Gestures Appropriately
Avoid associating different actions with the standard gestures users know.
Use complex gestures as shortcuts to expedite a task, not as the only way to perform a task.
In general, avoid defining new gestures.
For iPad, consider using multifinger gestures.
22. Ask People to Save Only When Necessary
People should have confidence that their work is always preserved unless they explicitly cancel or delete it. iOS apps should take responsibility for saving people’s input, both periodically and when they open a different document or quit the application.
For iPad, save information that people enter in a popover (unless they cancel their work).
23. Make Modal Tasks Occasional and Simple
Keep modal tasks fairly short and narrowly focused.
Always provide an obvious and safe way to exit a modal task.
If the task requires a hierarchy of modal views, make sure your users understand what happens if they tap a Done button in a view that’s below the top level.
24. Start Instantly
It’s often said that people spend no more than a minute or two evaluating a new app.
Display a launch image that closely resembles the first screen of the application.
Avoid displaying an About window or a splash screen. In general, try to avoid providing any type of startup experience that prevents people from using your application immediately.
On iPhone, specify the appropriate status bar style. In general, you want the status bar to coordinate with the rest of your application’s UI.
Launch in the appropriate default orientation.
Avoid asking people to supply setup information.
Focus your solution on the needs of 80 percent of your users.
Get as much information as possible from other sources.
If you must ask for setup information, prompt people to enter it within your application.
Delay a login requirement for long as possible.
Restore the state of the app to that in use when the user last stopped using the application.
Important: Don’t tell people to reboot or restart their devices after installing your application because restarting takes extra time and can make the app seem less easy to use. If your application has memory-usage or other issues that make it difficult to run unless the system has just booted, you need to address those issues.
25. Always Be Prepared to Stop
Save user data as soon as possible and as often as reasonable because an exit or terminate notification can arrive at any time.
Save the current state when stopping at the finest level of detail possible so that people don’t lose their context when they start the application again.
26. Don’t Quit Programmatically
Never quit an iOS application programmatically because people tend to interpret this as a crash.
However, if external circumstances prevent your application from functioning as intended, you need to tell your users about the situation and explain what they can do about it.
Display an attractive screen that describes the problem and suggests a correction.
If only some of your application’s features are not working, display either a screen or an alert when people activate the feature. Display the alert only when people try to access the feature that isn’t functioning.
27. If Necessary, Display a License Agreement or Disclaimer
If you provide an end-user license agreement (or EULA) with your iOS application, the App Store displays it so that people can read it before they get your application.
28. For iPad: Enhance Interactivity (Don’t Just Add Features)
The best iPad applications give people innovative ways to interact with content while they perform a clearly defined, finite task.
Resist the temptation to add features that are not directly related to the main task.
29. For iPad: Reduce Full-Screen Transitions
Closely associate visual transitions with the content that’s changing.
30. For iPad: Restrain Your Information Hierarchy
In general, focus the main screen on the primary content.
Use a navigation bar in the right pane of a split view.
Use a navigation bar in the left pane of a split view.
Use a popover to enable actions or provide tools that affect onscreen objects.
Use a segmented control in a toolbar.
Use a tab bar.
31. For iPad: Consider Using Popovers for Some Modal Tasks
32. For iPad: Migrate Toolbar Content to the Top
If your iPhone application has a toolbar, consider moving it to the top of the screen instead of leaving it at the bottom, with the additional width of the iPad screen.