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.
一个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.
有许多方法可将最初的灵感转化为流行应用,但是没有必胜的独门偏方。但是所有成功的应用程序开发都遵循一个指导原则:从用户角度进行设计。 以下总结的策略和最佳实践,全都基于此指导原则,它们指出了在设计应用程序时,您需要遵循的一些原则和指南。当您准备好着手开发时,请务必阅读《OS X Human Interface Guidelines》(OS X 用户界面指南)以获得完整的信息。
Understand the OS X Environment
理解OS X 开发环境
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.
如果你是OS X 应用程序开发的新手,首先第一步是自己成为一个OS X 用户。 然后,作为一个用户而不是作为一个开发者尽可能多的探索OS X平台的各种特征。 不管你是一个长期的Mac用户 或是该平台的新手,请在探索时,花时间弄清楚您的期望并分析您的操作。
![image: ../Art/design_with_the_user_in_mind_2x.png](https://i-blog.csdnimg.cn/blog_migrate/6afad030b426c7c31aed8f9b3fb3aef4.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.
OS X 包含了很多解除用户常用的应用管理任务的功能。 比如,为用户提供 自动保存,文档版本保存以及简单版本控制,那样它们就可以专注于自己的事情。
-
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 支持多种显示器,它们有着不同尺寸和分辨率。用户可以通过添加和旋转显示器来自定义它们的工作区。
-
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 应用程序不需要对用户使用的输入设备做任何猜想就能对各种手势,点击和键盘按键做出响应。
-
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 支持一个身临其境的全屏窗口环境。在用户需要专注于特殊任务,并避免分心的应用程序中,一个全屏窗口体验是有意义的。
-
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.
OS X 是一个多用户系统。 它能支持不同的用户账号,并允许用户同时登陆。 用户们期待能快速共享同一计算机,而不需要退出登陆。
-
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.
"偏好设置"允许用户定制它们如何体验一个应用程序。除内置系统偏好设置应用程序外,Mac 应用程序能提供它们自己的偏好设置, 这些设置能让用户修改应用程序制定的行为和外观。
A great app takes advantage of platform features and provides a user experience that seamlessly integrates with the OS X environment.
完美的应用程序需充分利用平台的功能,提供一个跟OS X环境无缝融合的用户体验。
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.
在此上下文中,human interface(用户界面)指的是人和电脑(包括在电脑上运行的软件)的交互。 当应用程序的用户界面是建立的人们思考和行为方式的基础上时,该应用程序用起来就是简单愉快的。
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:
Apple的用户界面设计原则整理了几项高水平的人机交互方面,这些方面都对用户体验有着明显的效果。当你设计应用程序时,请记住以下HI设计原则:
-
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.
明确和隐含的操作。 每个 OS X 操作涉及对对象的操纵,它通过一个动作(action)来完成。明确的动作清楚表明操纵一个对象的结果,而隐含的动作则通过可视化线索(visual cues) 或 上下文来传达动作的结果。
-
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.
一致性。 一致性在界面允许用户对一个应用程序的知识和技巧,应用到另一个应用程序。 理想情况下,应用程序应与 OS X 标准、其本身及较早版本相一致。
-
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.
《OS X Human Interface Guidelines》(OS X 用户界面指南)给出了大量指导准则,范围从用户体验的建议,到使用 OS X 技术与屏幕元素的具体规则。这一部分并不是《OS X Human Interface Guidelines》(OS X 用户界面指南)的摘要;而是让你接触一些指南,有助于您设计一个成功的应用程序。
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:
好的 OS X 应用程序能让用户流畅地访问他们关心的内容。 为了达到这样的目的,这些应用程序整合了这些用户体验指南:
-
Focus on solutions, not features.
专注于解决方法,而不是功能
-
Handle gestures appropriately.
适当的处理手势
-
Captivate with gorgeous graphics.
用华丽的图形吸引
-
Use standard UI elements correctly.
正确使用标准UI元素
-
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:
用户期望应用程序整合平台功能,比如 自动保存,恢复,以及全屏窗口。 尽管用户可能认为这些功能应该被自动提供,但是应用开发人员知道他们必须做工作才能整合它们。 为了确保应用程序能迎合用户体验的期待,实现这些功能, 开发者必须遵循以下OS X 技术指南:
-
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.
当与Dock菜单交互时,确保应用程序用户的各种期待。
-
Supply the appropriate information to the Finder to make sure your app integrates well with the file system viewer.
给Finder提供恰当的信息,以确保你的应用程序跟文件系统浏览器(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.
当用户遇到困难时, 利用帮助标签和Apple帮助来引导用户完成任务。
-
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:
当一个应用程序正确使用UI元素(比如 按钮和 工具栏)后,用户注意到也可能只是应用程序的行为正如他们所期待。但是如果应用程序没有正确使用UI元素,用户常常会毫不犹豫的表达它们的不满意并在Mac 应用商店里留下差评(negative feedback)。 好的Mac应用程序需要小心遵循UI元素用法指南:
-
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.
当设计自定义图标和图片时,使用所有用户都理解的通用图像,避免复制Apple UI 元素 或 产品。
-
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.
考虑使用 弹出面板 代替 source lists,面板或可变窗格。
-
Ensure that a determinate progress bar accurately associates progress with time.
确保一个限定的进度条(determinate progress bar)确实跟时间进程有关联。
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.
再次重复,在本部分罗列的指南只代表OS X 用户界面指南( OS X Human Interface Guidelines)里的一小部分。 完整阅读OS X 用户界面指南在应用程序开发过程中是很必要的一步。
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.
最成功的 OS X 应用程序,通常是深思熟虑、反复设计的结果。当开发者聚焦于主要任务,使功能更加精炼,是可以创建优秀的用户体验。本节总结的策略,可以帮助改进您的想法、审视设计选项,并专注于用户会欣赏的应用程序上。
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.
为设备而设计。除了整合 OS X 用户界面和用户体验的模式之外,请确定您的应用程序在设备上运行自如。
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.
适当地定制。每个应用程序都包括一些自定 UI(即使只在其 App Store 图标中)。Xcode 可以让您自定 UI 的各个方面,至于多少自定才合适就完全由您决定。最好的应用程序,会以目的明确和易用作为自定的考量。理想情况下,您想要用户觉得您的应用程序与众不同,又同时欣赏到其直观和易用,与其他应用程序保持一致。
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.
原型和迭代。在决定好包括哪些功能后,您就可以开始创建可测试的原型。早期的原型不需要显示真实的 UI 或美工图样,也不需要处理真实的内容。但是,它们需要给测试员准确的概念,知道应用程序是如何使用的。在测试过程中,要特别注意测试员尝试过但失败的地方,因为这些尝试,可以暴露出应用程序本该有却未实现的行为。继续测试直到您感到满意,认为用户可轻松理解应用程序是如何使用的,并能操作全部功能。