😀 看了苹果在WWDC2017发布的“基本的设计原则”的视频,简单总结了一下
写在前面
看了苹果在WWDC2017发布的“基本的设计原则”的视频,简单总结了一下
https://developer.apple.com/cn/videos/play/wwdc2017/802/
UI (user interface)用户界面, 对比另一个人机界面(human interface)使用更为广泛,但是后者在Apple的历史非常悠久

用户(user)这个词,是非常冰冷抽象的。所以在Apple内部,实际上用的更多的是human这个词
“界面设计根本上是为人类而服务,不是为了把应用做得漂亮,或者做得工整,简单,紧凑
这些虽然也很重要,但是他们不是真正的目标,真正的目标是,为人类而服务,或者能给应用的使用者带去积极影响”
App应该带来什么
上文提到,我们做应用,实际上是为了人类而服务,所以App应该带来的,也是人所需要的东西
一个人需要什么?
- 安全性和可预测性
- 知识,意义,理解
- 实现个人目标或者专业需求
- 感受美丽和快乐
所以一个好的App应该:
- 使用户可以轻松预测他们的行为将产生的后果
- 通过提供清晰有用的信息来帮助用户做出明智的选择
- 精简工作流程
- 有一种美学上令人满意的体验
导航系统设计
一个好的导航系统应该回答下列的基本问题:
- 我在哪里?
- 我可以去哪里?
- 当我到达那里时,我会发现什么?
- 附近有什么?
- 我怎么出去?

在实际中,navigationbar的标题,和tabbar的选中项目就是在回答”我在哪里?“的问题
tabbar的其他部分,有时还有当前页面的tableView就是在回答“我可以去哪里?”以及“附近有什么?”
简洁明了的标签栏图标和易懂的标识显示要去的地方都有什么
返回键就是出口 帮助人们定位应用里位置
应用中的每一屏都要解决这几个问题,在完成一个页面后,我们都应该检查页面是否回答完成了这些问题
反馈设计
“反馈让我们的驾驶更自信更安全,反馈帮助我们预测可能造成汽车无法正常驾驶,或完全开不了的问题”

为了安全考虑,汽车的反馈必须清楚,及时,而且易懂,汽车有多种反馈方法:
- 状态反馈,告诉我们汽车的状态
- 完成反馈,告诉我们运行时成功还是失败
- 警告反馈,告诉我们潜在的问题
- 错误反馈,提示我们某些操作造成了错误
准确,及时,易懂和提供信息的反馈很关键,反馈解答了极为重要的问题
- 我能做什么?
- 刚刚发生了什么?
- 现在什么情况?
- 接下来会怎样
好的反馈应该像对话,和你的设计对象对话,反馈是你的语言,来回答人们没有问出的问题,让人们知道他们在做什么,并为他们提供指引。
所以在设计应用的时候,想想你在跟使用者对话,如果你们在一个房间里,你会说什么,怎么说
可视性原则
如果把上文提到的导航系统,比如说一个tabbar里的内容全部折叠,人们会很难看到有哪些功能是可用的
当然这里有一个权衡,过于紧凑的页面会有压迫感,让人无法迅速决定内容,特别是使用者不熟悉应用的时候,所以可视性必须与其他元素权衡
一致性原则
一致性原则指相似的设计特性要用相似的方式表示,比如一辆汽车的刹车油门的位置
一致性原则大幅度提升了车辆的可用性。所有的图标,术语,通用一套设计词汇,这样可以降低学习成本,让人们更快的上手
内部一致性
内部一致性指的是应用中,控件的设计,在视觉和感觉上要与彼此保持一致,字体,大小,颜色要有一致的视觉风格。
当你的产品一切都能匹配,人们对产品的完整性会有更深刻的感受,人们会本能地认为这个设计是经过深思熟虑的选择
心智模型和系统
相比开车而言,水龙头更是基本的东西。但是某种程度上,你要去学怎么开水龙头,你要学会调整各种不同龙头的开关,观察结果。
只看水,很难分辨热水还是冷水。我们都有过被水烫到的经历。现在每次开水龙头时,你就不会想这些了,你会本能地这么做
因为在大脑中,有了这样一个小小的模型。这个水龙头,它代表的水龙头是含有不同部分和一系列功能和行为的系统
比如会流出水的喷孔,还有手柄,可以控制温度和水流大小
这种模型是心智模型,每个互动的系统都会形成一个心智模型。
心智模型分为两个部分
- 系统模型:研究系统运作的模型
- 交互模型:系统互动的模型
在应用设计的时候,让人们改变心智模型,了解你的应用是有很大风险的。对已经长期使用的产品,做任何改变都让人感觉难以适应
接近性
接近性是指控件作用于对象的距离,控件离对象越近,我们就越认为它们有关联
接近性可以帮助表现控件之间的关系,比如走廊灯的开关一定在走廊里

接近性好的设计,会更符合人体工学
映像
映像是指控件的设计能象征它所控制的对象,

比如亮度,亮度增加,亮度下降,意义在于控件反应了升降动作
映像还可以表示控件的排列关系
好的映射要让开关的排列能反应灯的布局,关注映像就能更轻松地选择控件安装位置,排列顺序,以及使用哪种控件


可用性
可用性是一个物品的特性,决定哪些行为可行,哪些不行
可用性是主观的,一个人感知到的可用性,其他人可能感受不到,
人们对可用性的感知大多来自它们经常做出的动作
可用性的感知关系到每个环境,每个物品,它们让人知道它能做些什么,显而易见的提示人们用正确或者预期的方式来进行互动,应用也是同样的道理
应用界面必须清楚的显示可供操作的的动作,避免人们不知道怎样正确的操作它
渐进展开原则
渐进展开原则是处理复杂问题的技术
渐进展开是逐步减轻人们从易到难的过程,渐进展开也会隐藏复杂性,这样人们就只用简单的节面完成基本任务
渐进展开是一种必要且有用的技术,但是它也会吞没部分信息和功能,如何正确使用渐进展开原则可以参考二八定律


平面设计原则
平衡
视觉元素都带有视觉重量,较深的颜色视觉重量更重,较浅的颜色视觉重量较轻;
较大的元素视觉重量较重,较小的元素视觉重量较轻
平面设计中的平衡指的是视觉观感上水平及竖直方向上的平衡,比如下图

相似
当想展现的界面元素属于一类时,可以使用相似的设计来保持其一致性。
比如下图
左中右三组数据间距设置完全一致,唯独第三个采用了不同的设计
可以明显感觉到第三组是不同的内容

对齐
界面中的元素应保持视觉上的对齐。
如下图所示,无论左侧对齐、居中对齐还是右侧对齐,都会给界面带来秩序与整齐的观感

重复
重复指的是对同一个界面元素的复用
复用会让用户体验到软件的设计的一致性,也有助于用户识别你的应用。

比如上图,即便我将不同尺寸的方块、文字组合在一起,只要色彩是被重复使用的,你也会认为这是同一个产品
反差
当你需要突出界面中两个元素具备不同含义时,可以考虑反差。反差与平衡和重复的目的恰好相反,是为了突出其差异性。比如可视化的磁盘清理工具中,用户最不常用的文件用深色的大圆表示

留白
设计不是堆砌,并不是信息呈现得越多越好。
留白指的是在界面元素周边预留出空置区域。
留白并不意味着让你舍弃对新信息的呈现,而是思考什么东西要在什么时候呈现出来,不要一下子全部堆出来

结构
设计应用时,结构指的是各视觉元素之间的层级关系
层级关系可以用下图所示的方法排列

以 iPhone 自带的天气应用为例
整个界面元素沿屏幕中线对齐,界面左右两边几乎对称
