有哪些关键的UI设计技巧是每个开发者都应该知道的呢?
虽然有很多面向开发者的UI资源(例如Joel Spolsky的《程序员的用户界面设计》),但我更感兴趣的是一份可以在1至2页内传达的清单。
我更关心实用的、日常使用的UI技巧,而非在UI设计会议上讨论的总体UI设计目标(假定至少有一个拥有良好UI感觉的人参加)。这样的技巧清单可能涵盖了日常程序员遇到的80%左右的情况。
有哪些关键的UI设计技巧是每个开发者都应该知道的呢?
虽然有很多面向开发者的UI资源(例如Joel Spolsky的《程序员的用户界面设计》),但我更感兴趣的是一份可以在1至2页内传达的清单。
我更关心实用的、日常使用的UI技巧,而非在UI设计会议上讨论的总体UI设计目标(假定至少有一个拥有良好UI感觉的人参加)。这样的技巧清单可能涵盖了日常程序员遇到的80%左右的情况。
<之前选择的时间> 高功率 = 按电源键,按启动键
<之前选择的时间+1分钟> 高功率 = 按电源键,按两次启动键
如您所见,添加少量额外按钮可以增加大量表达和功能设计。
任何带有数字键盘以指定时间的设计,往往无法满足我的优秀设计标准。
需要注意的是,这些设计可能对一些人来说具有较高的学习曲线,但一旦学会,肌肉记忆使其本能化。相比于更(明显?)但过于复杂的设计,即使是经验丰富的用户也将反复花费繁琐的时间执行繁琐的任意操作,仅仅为了实现常见目标。
我喜欢遵循以下准则:
关于日常用户界面网页设计和应用程序设计的一些简单技巧:
我的基本UI设计规则是让每个“页面”只完成一个任务。这使得页面简单,设计干净,应用程序更易于理解。
这种设计被称为归纳式用户界面。这里有一份微软在2001年发布的文档,虽然内容可能有些过时,但原则通常还是很好的。唯一需要注意的是,在这样设计时需要找到平衡点。如果过于简化,用户将不得不在各个页面之间导航以完成简单的任务,从而失去了理解性带来的生产力提升。
与其使用任意的“确定”和“取消”按钮,这些按钮在特定情境下可能会产生歧义,用户盲目地点击其中一个,不如将按钮包含简要说明它们所执行的操作。
[Ok, Please Cancel my subscription ], [ Please do not cancel my subscription ]
比...好得多
Cancel my subscription?
[ OK ] [ Cancel ]
这类故障通常会在 DailyWTF 上浮出水面。
这是我对于一个概念问题的称呼,“你的奶奶从未使用过电脑,仅会发邮件和查看www.cutecats.com,她能用吗?(假设她有使用该特定应用程序的现实知识)”。
所有常见的东西都应该很明显;没有黑盒子魔法带来的副作用。不常见的事情应该以用户之前使用过的常见格式让用户更容易接近。
清晰的标签,清晰的帮助文件路径,清晰的操作和明确的效果。
如果奶奶无法使用您的画图程序,那么您需要认真考虑您的UI界面。