一个出色的桌面应用程序功能强大,同时也很简单。通过精心平衡的功能选择和演示,您可以实现功能和简单性。

强大:

功能强大而简单:

理想的基于Windows的应用程序既强大又简单。当然,您希望您的应用程序功能强大,当然您希望它变得简单,但是您能同时实现它们吗?这些目标之间存在着自然的紧张关系,但这种紧张关系远非不可调和。通过精心平衡的功能选择和演示,您可以实现功能和简单性。

什么使应用程序功能强大?

“强大”在软件方面真正意味着什么?如果应用程序包含大量功能,可以被认为是强大的,具有广泛的功能,试图成为所有用户的所有东西。这样的设计不太可能成功,因为非目标功能集不太可能满足任何人的需求。这不是我们追求的那种强大。

当应用程序具有以下特征的正确组合时,它是强大的:

  • 启用。该应用程序满足其目标用户的需求,使他们能够执行他们无法做到的任务,并有效地实现他们的目标。
  • 高效。该应用程序使用户能够以之前无法实现的生产力和规模执行任务。
    多才多艺。该应用程序使用户能够在各种情况下有效地执行各种任务。
  • 直接。该应用程序感觉它直接帮助用户实现他们的目标,而不是妨碍用户或需要不必要的步骤。快捷方式,键盘访问和宏等功能可提高直接感。
  • 灵活。该应用程序允许用户对其工作进行完整,细粒度的控制。
  • 集成。该应用程序与Microsoft Windows完美集成,允许它与其他应用程序共享数据。
  • 高级。该应用程序具有非凡的,创新的,最先进的功能,这些功能在竞争解决方案中是找不到的。

这些特征中的一些取决于用户的感知并且与用户的当前能力有关。强大的功能可能会随着时间的推移而发生变化,因此现在的高级搜索功能将来可能会很普遍。

所有这些特征都可以结合到我们对强大的定义中:

当应用程序使目标用户有效地实现其全部潜力时,应用程序是强大的。

因此,程序强大的最终衡量标准是生产力,而不是特征的数量。

不同的用户需要帮助以不同的方式实现其全部潜力。对某些用户启用的功能可能会损害其他用户的多功能性,直接性和控制权。精心设计的软件必须适当地平衡这些特征。例如,为非专业人士设计的桌面发布系统可能会使用向导来引导用户完成复杂的任务。这样的向导使目标用户能够执行否则将无法执行的任务。相比之下,专业人士的桌面出版系统可能专注于直接性,效率和完全控制。对于这种应用程序的用户,向导可能是限制性的并且令人沮丧。

如果你只做一件事…

了解目标用户的目标并制定一套功能集,使他们能够高效地实现这些目标。

是什么让用户体验变得简单?

我们将简单定义如下:

简单性是减少或消除目标用户意识到并且认为不必要的设计属性。

在实践中,通过选择正确的特征集并以正确的方式呈现特征来实现简单性。这减少了不必要的属性,无论是真实的还是感知的。

简单性取决于用户的感知。考虑一下自动变速器的效果如何取决于用户的观点:

  • 对于典型的驾驶员(目标用户),自动变速箱无需手动换档和离合器,使汽车更容易驾驶。手动换档和离合器对于驾驶任务不是必不可少的,因此它们被移除以实现简单性。
  • 对于专业赛车手,直接控制变速箱对于提高竞争力至关重要。自动变速箱会对汽车的性能产生负面影响,因此不会导致汽车的简单性。
  • 对于机械师来说,自动变速器是一种更复杂的机构,因此比手动变速器更难以维修或维护。与机制不同,目标用户幸福地没有意识到这种内部复杂性。

虽然不同的用户对自动变速器的看法不同,但它是成功的,因为它消除了对目标用户的不必要的知识,技能和努力的需要。对于典型的驱动器,自动变速器是一个很好的功能,因为它仍被使用。

简单 VS 易用

正确应用时的简单性使得易于使用。但简单性和易用性不是相同的概念。当用户可以在适当的时间内成功地独立地执行任务时,可以实现易用性。有许多方法可以实现易用性,简单性——减少不必要性——只是其中之一。

所有用户,无论多么复杂,都希望以最少的不必要的努力完成他们的工作。所有用户——甚至是高级用户——主要是为了完成工作,而不是了解计算机或应用程序。

简单是实现易用性的最有效方式,易用性等同于使用。复杂,难以使用的功能只是不习惯。相比之下,简单,优雅的设计可以很好地发挥其功能,这是一种使用的乐趣。他们引发积极的,情绪化的反应。

例如,考虑Microsoft Windows XP中的无线网络支持。Microsoft本可以添加一个向导来引导用户完成配置过程。这种方法会带来易用性但不简单,因为会添加一个不必要的功能(向导)。相反,微软设计了无线网络来自动配置自己。用户最终不关心配置细节,只要它“可靠”且安全地“正常工作”即可。无线网络技术的这种功率和简单性的结合使其受欢迎并迅速采用。

如果你只做一件事…

使用最简单的设计开始您的设计过程。

如果您对当前的设计不满意,首先要剥离所有不必要的元素。你会发现剩下的东西通常都很好。

在保持动力的同时获得简单性

设计原则

为了简单起见,总是设计很可能的,而不是可能的。

可能的

基于可能导致复杂用户界面的设计决策(如注册表编辑器),其中设计假定所有操作都是同等可能的,因此需要同等的努力。因为一切皆有可能,所以在设计决策中不考虑用户目标。

很可能的

基于可能的设计决策导致简化的,基于目标和任务的解决方案,其中可能的场景得到关注并且需要最少的工作量来执行。

简洁的设计原则

为了简单起见,请关注可能的事情; 减少,隐藏或删除不太可能的东西; 并消除不可能的事。

用户将要做的事情与他们可能做的事情更相关。

设计技巧

要在保持功率的同时获得简洁性,请选择正确的功能集在正确的位置定位功能,并减少使用它们的工作量。本节介绍了实现这些目标的一些常用技巧。

选择正确的功能集

“实现完美,不是在没有其他任何东西可以添加的情况下,而是当没有任何东西可以带走时。”——Anto de Saint-Exupery

以下设计技术为您的用户提供他们所需的功能,同时通过实际减少或删除实现简单性:

  • 确定用户需要的功能。通过目标,方案和任务分析了解用户的需求。确定实现这些目标的一组功能。
  • 删除不必要的元素。删除不太可能使用的元素或具有更好的替代品。
  • 删除不必要的冗余。可能有几种有效的方法来执行任务。为了实现简单性,做出艰难的决定并为目标用户选择最佳的决策,而不是提供所有这些并作出选择。
  • 让它“自动工作”。该元素是必需的,但是使其工作的任何用户交互都不是因为存在可接受的默认行为或配置。为了简化操作,请使其自动运行,并将其完全隐藏或严重降低曝光率。

简化演示文稿

“简化的能力意味着消除不必要的,以便必要的可以给出。”——汉斯霍夫曼

使用以下设计技术来保持功率,同时通过减少或消除的感知实现简单性:

  • 结合应该结合的东西。将支持任务的基本功能放在一起,以便可以在一个位置执行任务。任务的步骤应该有一个统一的,简化的流程。将复杂的任务分解为一组简单明了的步骤,这样“一个”位置可能包含多个UI界面,例如向导。
  • 分开应该分开的东西。并非所有东西都可以在一个地方展示,所以总是有清晰,精心挑选的界限。使支持核心场景的功能更加集中和明显,并隐藏可选功能或使其成为外围设备。分离各个任务并提供相关任务的链接。例如,与操作照片相关的任务应该与管理照片集合相关的任务明确分开,但它们应该易于彼此访问。
  • 消除可以消除的东西。打印出您的设计并突出显示用于执行最重要任务的元素。甚至突出显示UI文本中传达有用信息的单个单词。现在回顾一下未突出显示的内容,并考虑将其从设计中删除。如果你删除该项目,会发生什么不好的事吗?如果没有,删除它!
  • 一致性,可配置性和一般化通常是理想的品质,但它们可能导致不必要的复杂性。检查您的设计是否存在误导性的一致性(例如具有冗余文本),泛化(例如,当两个时间足够时具有任意数量的时区),以及可配置性(例如用户不太可能更改的选项),以及消除什么可以消除。
  • 将元素放在正确的位置。在窗口内,元素的位置应遵循其实用程序。基本控件,说明和解释都应按逻辑顺序排列。如果需要更多选项,请通过单击V形或类似机制在上下文中公开它们; 如果需要更多信息,请在鼠标悬停时显示信息提示。将不太重要的任务,选项和帮助信息放在主流之外的单独窗口或页面中。根据需要显示附加细节的技术称为渐进式公开。
  • 使用有意义的高级组合。与单个元素相比,选择和操纵相关元素组通常更简单,更具可扩展性。高级组合的示例包括文件夹,主题,样式和用户组。这种组合通常映射到从各个元素不明显的用户目标或意图。例如,高对比度黑色配色方案背后的意图比黑色窗口背景更明显。
  • 选择正确的控件。设计元素由用于表示它们的控件体现,因此选择正确的控件对于高效演示至关重要。例如,Microsoft Word使用的字体选择框既显示字体的预览,也显示最近使用的字体。类似地,Word显示可能的拼写和语法错误的方式比对话框替代方法简单得多,如本文开头所示。

减少努力

“简单的事情应该是简单的。复杂的事情应该是可能的。”——Alan Kay

以下设计技术可以减少用户的工作量:

  • 使任务可被发现和可见。所有任务,尤其是频繁的任务,都应该在用户界面中易于发现。执行任务所需的步骤应该是可见的,不应该依赖于记忆。
  • 在用户的域中显示任务。复杂的软件要求用户将他们的问题映射到技术。简单的软件通过呈现自然的东西来为它们进行映射。例如,防红眼功能直接映射到问题空间,不需要用户根据色调和渐变等细节进行思考。
  • 将领域知识纳入该计划。不应要求用户访问外部信息以成功使用您的应用程序。领域知识的范围可以从复杂的数据和算法到简单地明确哪种类型的输入是有效的。
  • 使用用户理解的文本。精心制作的文本对于与用户进行有效沟通至关重要。使用用户熟悉的概念和术语。用简明的语言充分解释所提出的问题,以便用户做出明智,明智的决策。
  • 使用安全,可靠,可能的默认值。如果某个设置在大多数情况下具有适用于大多数用户的值,并且该设置既安全又可靠,请将其用作默认值。仅在必要时使用户指定值。
  • 使用约束。如果有多种方法可以执行任务,但只有一些方法是正确的,则将任务约束为正确的方式。不应允许用户做出容易预防的错误。

简单并不意味着简单化

“一切都应尽可能简单,而不是更简单。”——爱因斯坦

我们相信简单性对于有效,理想的用户体验至关重要——但总是可以把好事带到太远。简单的本质是减少或消除不必要的东西。去除必需品只会产生糟糕的设计。如果您的“简化”导致用户变得沮丧,困惑,不自信或无法成功完成任务,那么您已经删除了太多。

简单意味着更多的努力

“我把这封信延长了,因为我没有时间把它缩短。”——Blaise Pascal

在保持强大的同时获得简单性通常需要显着的内部复杂性。设计暴露所有技术管道的软件通常比设计隐藏它的软件更容易——后者需要对目标用户及其目标有一个很好的理解。删除功能需要遵守规则,因为决定不添加真正不实用的酷功能。简单性需要做出艰难的设计选择,而不是让所有东西都可配置。复杂的软件通常源于对用户的误解:他们重视未使用的功能或他们无法理解的过于复杂的功能。

功能强大而简单

应用强大就是为您的用户提供支持并提高他们的工作效率。简单就是以正确的方式去除不必要和呈现功能。通过了解目标用户并实现功能和演示的正确平衡,您可以设计同时执行这两者的基于Windows的应用程序。


原文链接:How to design a great user experience for desktop applications

Windows桌面应用程序(2-1-1st) 如何为桌面应用程序设计出色的用户体验相关推荐

  1. php开发桌面应用程序_使用PHP开发跨平台桌面应用程序的3种方法

    php开发桌面应用程序 PHP as a cross-platform desktop app development language? Blasphemy! Nonetheless, it's p ...

  2. 【快速远程桌面应用程序】上海道宁为您提供远程桌面软件——AnyDesk,轻松实现远程支持和远程维护以及在线协作、远程工作

    AnyDesk是一款 快速远程桌面应用程序 可以让您远程访问和管理设备 轻松的.安全的与任何人协作 上海道宁专注于软件工具经销 为您带来强大的 远程桌面软件--AnyDesk 您可以从任何地方轻松连接 ...

  3. linux 桌面 v2ex,程序员:他人笑我桌面太凌乱,我笑他人看不穿

    原标题:程序员:他人笑我桌面太凌乱,我笑他人看不穿 在 V2EX 这个创意工作者社区每年都有晒桌面的讨论帖,其中不乏有很多程序员晒出他们"逼格"满满的桌面.在过去,DeepWork ...

  4. linux下做桌面应用程序,PinePhone成功演示运行Linux桌面应用程序

    导读 移动设备和桌面设备是两种不同的形态,但包括微软.苹果.谷歌在内的科技巨头都试图打破这两种设备的壁垒,实现应用的互通. 除了Android和iOS两大主流移动系统的努力之外,拥有开源社区支持的Pi ...

  5. 小程序购物车下架商品实时显示,只为更好用户体验!

    单商户小程序V1.8.4版本更新说明 更新时间:2018年9月10号 一. 更新功能清单 1.新增仅支持自提功能设置,用户下单仅可选到店自提! 2.小程序前台优化购物车页面,已删除或已下架的商品,其状 ...

  6. 腾讯WeTest小程序异常监控:解决异常问题,为高质量用户体验护航

    随着互联网数字化发展,小程序已经成为诸多企业经营矩阵中不可或缺的一环.阿拉丁研究院及小程序数据库相关数据显示,2022年H1微信.支付宝.抖音.快手等多个平台小程序数量超过750万,日活用户超过7.8 ...

  7. 微信小程序图片处理方案,解决加载缓慢,影响用户体验

    1.改变图片尺寸:对于上传的图片,在后台对图片进行可接受范围内的最大限度压缩,图片宽高不用太大,大概预留你图片容器的1.5倍就行了,除非你做图片放大镜功能,否则小程序上加载2倍图意义不大,清晰度体验也 ...

  8. 微信小程序 移动端触碰区域一如何构造良好的用户体验 的探讨

    在移动端,有时候我们用手指点击一个按钮,必须手指完完全全的放到按钮的边界内点击才可以触碰:很是麻烦,所以为了提高用户的体验,有时候触碰区域通常比我们实际的按钮要大一点.(这点不同于网页开发,因为在网页 ...

  9. 在桌面应用程序与Web应用程序之间该如何选择

    今天开到一篇很好的文章,忍不住翻译过来.(版权归作者所有.如有侵权,请留言告知) 软件开发项目通常从一个常见的困境开始:桌面与 Web 应用程序.每个选项的优点和缺点使它成为一个艰难但至关重要的选择. ...

最新文章

  1. CSS - 解决placeholder不起作用的方法
  2. 【PAT乙级】1014 福尔摩斯的约会 (20 分)【模拟 / 很坑】
  3. jquery父元素和子元素点击事件传递问题_不可把父元素的事件传递给子元素_事件无限循环传递...
  4. 单继承-继承的传递性
  5. 我在使用chrome经常使用的一些技巧
  6. c++命名空间---namespace
  7. Java笔记-DH密钥交换
  8. 分治——Secret Cow Code S(洛谷 P3612)
  9. C++的构造函数总结
  10. 备份校验两不误,MySQL自动备份还原校验设计详解
  11. 二倍精灵图的做法(以firework为例)
  12. B,KB,MB,GB之间换算
  13. matlab中在xls单元格中填充颜色,!Excel中如何根据某一列的值对整行进行颜色填充?...
  14. 几个经典的数字电路设计
  15. oracle12c用plsql连不上,plsql developer 连不上11G64位ORACLE
  16. ssm共享充电宝管理系统计算机毕业设计
  17. Json简介与基本使用
  18. You need Perl 5.
  19. 时序分析寄存器到寄存器
  20. 2016/10/20

热门文章

  1. 2021年全球天然橡胶行业供需现状分析:需求量迎来恢复性增长,中国市场需求量占比超40%[图]
  2. mint-ui —— navbar的使用
  3. 语音合成(TTS)论文优选:过平滑问题分析及优化Revisiting Over-Smoothness in Text to Speech
  4. 赛尔号和赛尔机器人_赛尔号大电影6垃圾星赛尔机器人介绍
  5. daytime协议的服务器和客户端程序,用Socket套接字实现DAYTIME协议的服务器和客户端程序-20210726002244.doc-原创力文档...
  6. python爬取网易云音乐飙升榜音乐_python爬取网易云音乐热歌榜单(获取iframe中数据,src为空)...
  7. java 全角_java全角、半角字符的关系以及转换详解
  8. 感知机算法在鸢尾花数据集上的实践
  9. 微信跳一跳 可以直接更改分数, POST 请求没有校验
  10. apikey、apisecret在api请求中的使用