很多人对UI设计都嗤之以鼻,认为那是比较低级的活,比起搞算法搞架构来,UI设计简直不在一个档次。其实,我认为,这是一个误区,严重的误区。我们总是强调“Customer Oriented”,而UI是产品和用户之间的桥梁,用户的任何操作都必须通过这个桥梁,如果这个桥梁设计得不合理,不管你的产品内在如何(功能多强大),用户都不太会愿意使用你的产品。我们做项目时,往往花了很多时间在讨论功能和技术实现,但最后,用户还是不满意。为什么?UI设计不合理可能就是其中一个原因。让我们看看一个简单的例子,苹果的播放器(iPod),就是凭着时尚的外观和简单的操作征服了无数用户。
UI设计并不是一件容易的事,很多人都把它想得过于简单了。现在,让我们静下心来,好好思考:UI设计到底需要注意哪些方面?
1. 以客户为中心
这是最基本的原则,所有的原则都建立在此原则之上。
2. 充分了解你的客户
可以从以下三个问题开始:
- 客户的目标是什么
- 客户已有的经验和技术能力
- 客户需要什么
回答完以上三个问题以后,我们才能着手考虑:如何利用客户现有的经验和能力帮助客户达到他们的目标。
3. 尊重客户已有的习惯
客户肯定更喜欢那些和自己平常习惯一致的UI,这样可以大大降低客户的学习难度。
4. 不要一上来就把所有的功能暴露给客户
功能暴露过多,会让用户不知所措:到底该点哪呀?要根据用户当前的上下文环境,把最常用的功能暴露给用户。
5. 尽量少和尽量晚让用户做“选择题”,特别是“多项选择题”
用户最怕做选择题,因此应该尽量少让用户做选择,即使是必须的,也应该尽量晚让用户做选择:不到最后时刻,不让用户做选择。
6. 确保UI设计的一致性
如果UI风格是一致的,那么将会大大降低用户适应和学习的难度。这里的一致性可以从两个方面来考虑:
- 产品(应用程序)内部,必须做到UI的一致性。所有的窗口,菜单,按钮,导航方法等等必须是相同或相近的。
- 产品的UI必须和系统环境以及常用软件的UI保持一致。
7. 注意给予一定的冗余
对于同一个信息或操作,我们往往会给予一定的冗余,以确保不同用户或同一用户在不同情况下的需求。例如,出错信息,一般我们会显示一个错误提示窗口,还可以配上一些提示音。再例如,对于所有菜单,都提供相应的快捷键;对于所有的鼠标操作,都提供相应的键盘操作等等。
8. 尽量包容用户犯的错
不管你的UI设计得如何完美,用户总有犯错的时候,例如按错了按钮,输入错误的数据等等。当然,首先应当尽量避免用户犯错。可错误一旦发生,此时,我们应该给客户“反悔”的机会,例如RollBack / Undo机制等等。这样,用户才能更“大胆”的使用产品,学习产品。
9. 让用户知道自己正在做什么,曾经做过什么
用户可能经常会说:“我刚刚点了一个按钮,可什么也没发生”,“我不知道刚才都做了一些什么操作,就变成现在这个样子了”,等等。这是缺乏足够清晰的Feedback造成的。对于用户的每一个操作,系统必须尽快给予Feedback。Feedback可以是图形的,也可是声音或其他形式的。
10. 谨记简单清晰原则
把事情做大做复杂,谁都会。把事情做小做简单了才是本事。做UI设计的时候,也必须考虑如何把UI做小做简单了。不要画蛇添足,一切不需要的东西都必须清除。
11. 让用户控制UI,而不是UI控制用户
不要试图通过Enable 和Disable来控制用户的操作,应该根据用户的操作(产生相应的事件)来控制(Enable或Disable)UI。应该给用户一定的能力去优化自己的UI。