Documentation Archive Developer
Search

Design with the User in Mind

The success of a Mac app depends largely on the quality of its user interface. If users don’t find an app attractive and easy to use, even the fastest, most powerful, most full-featured app can languish in the Mac App Store.

There are many ways to get from initial inspiration to popular app, and there is no single path that guarantees success. But there is one directive on which successful app development depends: Design with the user in mind. The strategies and best practices summarized below are based on this directive, and they represent a few of the many principles and guidelines you need to follow as you design an app. When you’re ready to get to work, be sure to read OS X Human Interface Guidelines for the complete story.

Understand the OS X Environment

If you’re new to OS X app development, your first step is to become an OS X user yourself. Then, as much as possible, explore the characteristics of the OS X platform as a user, not as a developer. Whether you’re a longtime Mac user or you’re new to the platform, take the time to articulate your expectations and analyze your actions as you explore.

image: ../Art/design_with_the_user_in_mind_2x.png

For example, consider how the following platform features affect the user experience:

  • OS X includes many features that relieve users of common app-management tasks. For example, Auto Save and Versions make document saving and version control easy for users so that they can focus on their content.

  • All apps put their menus in a single menu bar. With a single menu bar, users always know where to look for application commands.

  • OS X supports multiple displays of varying size and resolution. Users can customize their workspace by adding and rotating displays.

  • OS X apps respond to gestures, clicks, and keystrokes without making any assumptions about the type of input device the user is using. Users expect to be able to interact with their Mac using the input device of their choice.

  • OS X supports an immersive, full-screen window environment. A full-screen window experience makes sense for apps in which users want to concentrate on specific tasks and avoid distractions.

  • OS X is a multiple-user system. It supports different user accounts and allows multiple users to be logged in simultaneously. Users expect to be able to share the same computer quickly without logging out.

  • Preferences allow users to customize how they experience an app. In addition to the built-in System Preferences app, Mac apps can offer their own preferences, which allow users to make changes to app-specific behaviors and appearances.

A great app takes advantage of platform features and provides a user experience that seamlessly integrates with the OS X environment.

Learn the Fundamental Human Interface Principles

As a user, you notice when an app makes it hard to tell whether it received your input, or when you can’t find a standard menu item. In cases like these, what you notice is the app’s failure to follow the fundamental principles of human interface design.

In this context, the term human interface refers to the interaction between people and computers, including the software that runs on them. An app is easy and enjoyable for people to use when its human interface builds on the ways people think and behave.

Apple’s human interface design principles codify several high-level aspects of human-computer interaction that have a perceptible effect on the user experience. As you design your app, keep in mind the following principles of HI design:

  • Metaphors. When virtual objects and actions in an app are metaphors for objects and actions in the real world, users quickly grasp how to use the app. The most appropriate metaphors suggest a use or experience without enforcing the limitations of the real-world object or action on which they’re based.

  • Mental model. Most users already have a mental model that describes the task an app performs. An app that builds on the mental model of its users tends to be intuitive for people to use.

  • Explicit and implied actions. Each OS X operation involves the manipulation of an object using an action. Explicit actions clearly state the result of manipulating an object, while implied actions convey the result of an action through visual cues or context.

  • Direct manipulation. When people directly manipulate onscreen objects and their changes are immediately visible, they're more engaged with the task and they more readily understand the results of their actions.

  • User control. Although an app can suggest a course of action or warn about adverse consequences, it’s usually a mistake for the app to take decision-making away from the user. The best apps find the correct balance between giving people the capabilities they need and helping them avoid unfavorable outcomes.

  • Feedback and communication. Feedback acknowledges people’s actions and assures them that processing is occurring. For example, people expect immediate feedback when they operate a control, and they appreciate status updates during lengthy operations.

  • Consistency. Consistency in the interface allows people to transfer their knowledge and skills from one app to another. Ideally, an app is consistent with the OS X standards, with itself, and with earlier versions of itself.

  • WYSIWYG (what you see is what you get). Users expect apps to show the actual results of the actions they take and to provide accurate previews of the content they create. For example, when users customize a document onscreen, they expect to find their changes in the printed version of the document.

  • Forgiveness. People need to feel that they can try things without damaging the system or jeopardizing their content. Successful apps encourage users to explore by building in forgiveness and making most actions easily reversible.

  • Perceived stability. To give users a conceptual sense of stability, the interface provides a clear, finite set of objects and a set of actions to perform on those objects. Standard elements and actions create a familiar environment in which users know how things behave and what to do.

  • Aesthetic integrity. Aesthetic integrity is not a measure of how beautiful an app is; it’s a measure of how well an app’s appearance matches its function.

Follow the Guidelines

OS X Human Interface Guidelines contains guidelines that range from user experience recommendations to specific rules that govern the usage of OS X technologies and onscreen elements. This section does not function as a summary of OS X Human Interface Guidelines; rather, it gives you a taste of the types of guidelines that help you design a successful app.

Great OS X apps give people streamlined access to the content they care about. To do this, these apps incorporate user experience guidelines such as these:

  • Focus on solutions, not features.

  • Handle gestures appropriately.

  • Captivate with gorgeous graphics.

  • Use standard UI elements correctly.

  • Use the right pointer for the job.

  • Help users be productive immediately.

  • Make exploration safe.

  • Adapt to changes in the user’s environment.

  • Earn users’ trust with reliability, predictability, and stability.

Users expect apps to incorporate platform features such as Auto Save, Resume, and full-screen windows. Even though users might think of these features as automatically available, app developers know that they must do work to integrate them. To make sure an app provides the expected user experience for these features, developers follow OS X technology guidelines such as these:

  • Support Auto Save and Versions for document-based apps.

  • Comply with the user’s Notification Center settings when handling local and push notifications.

  • Ensure that your app meets users’ expectations when interacting with the Dock menu.

  • Supply the appropriate information to the Finder to make sure your app integrates well with the file system viewer.

  • Respect users’ systemwide preferences, and allow them to customize the appearance and behavior of your app if necessary.

  • Assist users—with help tags and Apple Help—when they are having difficulty accomplishing a task.

  • Make it easy for users to interact with their content by supporting drag and drop.

When an app correctly uses UI elements, such as buttons and toolbars, users are likely to notice only that the app behaves as they expect. But when an app uses UI elements incorrectly, users are often quick to voice their dissatisfaction and leave negative feedback in the Mac App Store. Great Mac apps take care to follow UI element usage guidelines. For example:

  • Use system-provided buttons and icons according to their documented meaning.

  • When designing custom icons and images, use universal imagery that all users understand and avoid replicating Apple UI elements or products.

  • As much as possible, use only one level of submenus.

  • Create toolbar items that represent the functionality users need most often.

  • Title a newly opened window appropriately.

  • Consider using popovers instead of source lists, panels, or changeable panes.

  • Ensure that a determinate progress bar accurately associates progress with time.

Again, the guidelines listed in this section represent a fraction of the guidelines contained in OS X Human Interface Guidelines. Reading that document in its entirety is an essential step in the app development process.

Take Advantage of Proven Design Strategies

The most successful OS X apps are the result of thoughtful design iteration. When developers focus on the main task and continue to refine their list of features, they can create a superior user experience. The strategies summarized in this section can help you refine your idea, review design options, and converge on an app that people will appreciate.

Distill the feature list. As early as possible in the design process, define precisely what your app does and who your target audience is. Use this definition (called an application definition statement) to filter out unnecessary features and to guide the style of the app. Although it’s tempting to think that more features make a better app, the opposite is more often true. The best apps tend to focus on enabling a main task and providing only those features that users need to accomplish the task.

Design for the environment. In addition to integrating the patterns of the OS X user interface and user experience, make sure your app feels at home on the platform.

Customize appropriately. Every app includes some UI customization, if only in its App Store icon. Xcode gives you the ability to customize every aspect of the UI, so it’s up to you to decide how much customization is appropriate. The best apps balance customization with clarity of purpose and ease of use. Ideally, you want users to recognize the distinctiveness of your app, while at the same time appreciating the consistency that makes an app intuitive and easy to use.

Prototype and iterate. Soon after you’ve decided which features to include, begin creating testable prototypes. Early prototypes don’t need to display real UI or art, and they don’t need to handle real content. But they do need to give testers an accurate idea of how the app works. During testing, pay particular attention to what testers try and fail to do, because their actions can reveal places where the app appears to promise a behavior that it doesn’t deliver. Continue testing until you’re satisfied that users can easily grasp how the app works and operate all its features.