设计用户界面

本节详细介绍了与为 Windows 应用程序设计 UI 相关的一些任务。

介绍

UI 设计可以分为三个基本要素:功能性、美观性和性能。

通常情况下,应用程序开发过程中的主要关注点是功能。 应用程序是否可用? 它是否允许用户完成任务? 但是,功能只是方案的一部分。

美观性描述了事物是如何被展示和呈现的,以及事物传达给用户的风格。 美观性非常主观,比功能要求和性能指标更难以量化。 美观性通常归因简单选择(颜色如何相互补充或 UI 元素如何传达其含义),这些选择往往会影响一个人对某事的感受,并影响他们使用它的成功程度。

性能不仅通过速度来衡量,还通过可靠性来衡量。 如果一个应用程序看起来和感觉都很棒,很容易使用,但却反复崩溃,那么它可能不会很成功。 应用程序必须让用户对其可靠性有充分的信心。

以下是一些设计阶段的任务,它们有助于为 Windows 应用程序创建一个成功的 UI。

功能要求

请在设计阶段的早期考虑以下建议,以优化尽可能广泛的受众的用户体验:

  • 遵循 UI 设计指南。

    熟悉 Windows 用户体验交互指南,并在应用程序 UI 的设计、实现和测试过程中经常参考这些指南。

  • 确保 UI 可访问。

    请务必从产品生命周期的一开始就将辅助功能集成到 UI 设计中。 由于辅助功能开发的一部分需要在体系结构级别进行关注,因此改造辅助功能的成本可能极高。 有关详细信息,请下载辅助功能工程软件电子书

  • 支持国际市场。

    Windows 包括在 Windows 应用程序中支持多种文化和书面语言的技术。 如果应用程序的目标是国际市场,那么从项目一开始就在 UI 设计中包含国际化支持非常重要。 有关详细信息,请参阅 Windows 应用程序的国际化

用户分析

设计成功界面的一个关键步骤是在编写任何代码之前,对用户需要和用户对应用程序的需求有一个基本的了解。 请记住,应用程序的潜在用户已经在以某种方式完成他们的工作,并且应该尽可能全面地了解现有的工具和流程。 在没有充分考虑这些问题的情况下,不要进行设计。

最简单、最非正式的方法是与产品的预期用户交谈。 直接从来源获取信息,避免使用经理或高管作为实际消费者的代理人。 考虑让一小群开发人员和项目经理对工作场所的用户进行非正式访问,在那里有机会讨论他们的工作方式,并收集他们使用当前工具面临的问题的详细信息。

请记住,不要问引导性或有偏见的问题,因为这会直接影响用户反馈的质量和有效性。 在此阶段编写问题时,请记住以下几点:

  • 我们的用户是谁? 他们拥有哪些技能和知识?
  • 我们可以使用哪些不同的数据来源来了解他们的体验?
  • 他们将使用我们的产品完成哪些目标和任务?
  • 我们做了什么假设?我们如何验证这些假设?
  • 我们拥有哪些数据源? (可用性研究和启发式评估是很好的起点。)

问题陈述

收集完所有用户反馈后,对其进行分析,并将其提炼为相关问题和需求。 此时尽量避免考虑解决方案。 确保问题得到完全识别,而不仅仅是症状。

为每个问题或需求(从用户的角度)编写一个一句话的问题陈述列表通常很有帮助。 例如,不能编写问题“将编辑框宽度调整为 15 个字符”。 而“输入长搜索词太难了”则是一个有效的问题陈述。 差别巨大。 尽量不要同时定义解决方案和问题:往往无法识别真正的问题。 在本例中,可能有许多其他方法可以解决搜索词的问题,包括更改编辑框的大小。 始终牢记备选解决方案。

以下是问题陈述的其他示例:

  • 很难从网站的一个部分导航到另一个部分。
  • 加载软件时用户必须等待太长时间。
  • 我们的安全错误信息很难理解。
  • 注册页有太多的问题,用户往往会放弃。
  • 在网站索引上找到特定的产品太难了,无法完成。

如果问题陈述足够广泛,则可能有许多创新和创造性的方式来解决这些问题。

优先级

获取项目列表并按优先级对其进行排序的行为定义了发布。 如果没有明确的优先事项,团队可能会就哪些事情应该做、哪些事情应该削减而争吵不休。 随着研究的完成,设定优先事项的工作应该会更容易,但这始终是一个挑战。

设定优先事项需要至少根据三个标准进行评估:日程表、团队和业务。 为项目设置一个预定义的时间表,限制可以完成的工作的大小和规模。 在较小的发布周期中,不应尝试重写一半代码库的问题。

团队的组成和性质决定了可以做什么样的工作。 团队还有哪些其他承诺? 团队中是否有设计师或可用性工程师? 团队在 Web 或 UI 设计方面具备哪些技能? 最后也是最重要的一点是业务考虑因素。 这个项目的收益目标是什么? 谁是竞争对手? 解决某些问题有什么好处? 可以建立哪些伙伴关系? 在对清单进行优先排序之前,还应确定任何其他考虑因素。

一旦确定了优先级,问题陈述列表就会为产品设定方向,并确保开发针对正确的领域。

概念设计

通常,在概念设计阶段不会解决 UI 问题。 但是,此阶段确实需要一个全面的业务模型,其中包含完整的用户配置文件和使用情况方案,这对于成功的用户体验至关重要。

逻辑设计

逻辑设计阶段是开发支持概念设计的初始原型的阶段。

此阶段还确定了在开发过程中使用的特定硬件和软件技术,这可以确定最终产品中 UI 的功能。 有关详细信息,请参阅用户界面技术

除了开发工具之外,还应确定应用程序要面向的各种硬件需求和外形规格。

物理设计

物理设计阶段决定了如何为逻辑设计中确定的特定硬件和外形规格实现 UI 设计。

正是在这个阶段,硬件或外形规格的限制可能会给 UI 带来意想不到的约束,从而需要对设计进行重大改进。