Log Entry

基本的设计原则

设计的基本原则,作为一个程序员,可能对如何设计不大了解。这里简单的讲了讲如何设计,以及一些基本的平面设计方案

😀 看了苹果在WWDC2017发布的“基本的设计原则”的视频,简单总结了一下

https://developer.apple.com/cn/videos/play/wwdc2017/802/

写在前面

看了苹果在WWDC2017发布的“基本的设计原则”的视频,简单总结了一下

https://developer.apple.com/cn/videos/play/wwdc2017/802/

UI (user interface)用户界面, 对比另一个人机界面(human interface)使用更为广泛,但是后者在Apple的历史非常悠久

CleanShot_2025-08-27_at_22.38.022x.png

用户(user)这个词,是非常冰冷抽象的。所以在Apple内部,实际上用的更多的是human这个词

“界面设计根本上是为人类而服务,不是为了把应用做得漂亮,或者做得工整,简单,紧凑

这些虽然也很重要,但是他们不是真正的目标,真正的目标是,为人类而服务,或者能给应用的使用者带去积极影响”

App应该带来什么

上文提到,我们做应用,实际上是为了人类而服务,所以App应该带来的,也是人所需要的东西

一个人需要什么?

  • 安全性和可预测性
  • 知识,意义,理解
  • 实现个人目标或者专业需求
  • 感受美丽和快乐

所以一个好的App应该:

  • 使用户可以轻松预测他们的行为将产生的后果
  • 通过提供清晰有用的信息来帮助用户做出明智的选择
  • 精简工作流程
  • 有一种美学上令人满意的体验

导航系统设计

一个好的导航系统应该回答下列的基本问题:

  • 我在哪里?
  • 我可以去哪里?
  • 当我到达那里时,我会发现什么?
  • 附近有什么?
  • 我怎么出去?

CleanShot_2025-08-28_at_16.55.442x.png

在实际中,navigationbar的标题,和tabbar的选中项目就是在回答”我在哪里?“的问题

tabbar的其他部分,有时还有当前页面的tableView就是在回答“我可以去哪里?”以及“附近有什么?”

简洁明了的标签栏图标和易懂的标识显示要去的地方都有什么

返回键就是出口 帮助人们定位应用里位置

应用中的每一屏都要解决这几个问题,在完成一个页面后,我们都应该检查页面是否回答完成了这些问题

反馈设计

“反馈让我们的驾驶更自信更安全,反馈帮助我们预测可能造成汽车无法正常驾驶,或完全开不了的问题”

CleanShot_2025-08-27_at_17.29.032x.png

为了安全考虑,汽车的反馈必须清楚,及时,而且易懂,汽车有多种反馈方法:

  • 状态反馈,告诉我们汽车的状态
  • 完成反馈,告诉我们运行时成功还是失败
  • 警告反馈,告诉我们潜在的问题
  • 错误反馈,提示我们某些操作造成了错误

准确,及时,易懂和提供信息的反馈很关键,反馈解答了极为重要的问题

  • 我能做什么?
  • 刚刚发生了什么?
  • 现在什么情况?
  • 接下来会怎样

好的反馈应该像对话,和你的设计对象对话,反馈是你的语言,来回答人们没有问出的问题,让人们知道他们在做什么,并为他们提供指引。

所以在设计应用的时候,想想你在跟使用者对话,如果你们在一个房间里,你会说什么,怎么说

可视性原则

如果把上文提到的导航系统,比如说一个tabbar里的内容全部折叠,人们会很难看到有哪些功能是可用的

当然这里有一个权衡,过于紧凑的页面会有压迫感,让人无法迅速决定内容,特别是使用者不熟悉应用的时候,所以可视性必须与其他元素权衡

一致性原则

一致性原则指相似的设计特性要用相似的方式表示,比如一辆汽车的刹车油门的位置

一致性原则大幅度提升了车辆的可用性。所有的图标,术语,通用一套设计词汇,这样可以降低学习成本,让人们更快的上手

内部一致性

内部一致性指的是应用中,控件的设计,在视觉和感觉上要与彼此保持一致,字体,大小,颜色要有一致的视觉风格。

当你的产品一切都能匹配,人们对产品的完整性会有更深刻的感受,人们会本能地认为这个设计是经过深思熟虑的选择

心智模型和系统

相比开车而言,水龙头更是基本的东西。但是某种程度上,你要去学怎么开水龙头,你要学会调整各种不同龙头的开关,观察结果。

只看水,很难分辨热水还是冷水。我们都有过被水烫到的经历。现在每次开水龙头时,你就不会想这些了,你会本能地这么做

因为在大脑中,有了这样一个小小的模型。这个水龙头,它代表的水龙头是含有不同部分和一系列功能和行为的系统

比如会流出水的喷孔,还有手柄,可以控制温度和水流大小

这种模型是心智模型,每个互动的系统都会形成一个心智模型。

心智模型分为两个部分

  1. 系统模型:研究系统运作的模型
  2. 交互模型:系统互动的模型

在应用设计的时候,让人们改变心智模型,了解你的应用是有很大风险的。对已经长期使用的产品,做任何改变都让人感觉难以适应

接近性

接近性是指控件作用于对象的距离,控件离对象越近,我们就越认为它们有关联

接近性可以帮助表现控件之间的关系,比如走廊灯的开关一定在走廊里

CleanShot_2025-08-27_at_17.31.392x.png

接近性好的设计,会更符合人体工学

映像

映像是指控件的设计能象征它所控制的对象,

image.png

比如亮度,亮度增加,亮度下降,意义在于控件反应了升降动作

映像还可以表示控件的排列关系

好的映射要让开关的排列能反应灯的布局,关注映像就能更轻松地选择控件安装位置,排列顺序,以及使用哪种控件

CleanShot_2025-08-28_at_17.24.042x.png

CleanShot_2025-08-28_at_17.24.272x.png

可用性

可用性是一个物品的特性,决定哪些行为可行,哪些不行

可用性是主观的,一个人感知到的可用性,其他人可能感受不到,

人们对可用性的感知大多来自它们经常做出的动作

可用性的感知关系到每个环境,每个物品,它们让人知道它能做些什么,显而易见的提示人们用正确或者预期的方式来进行互动,应用也是同样的道理

应用界面必须清楚的显示可供操作的的动作,避免人们不知道怎样正确的操作它

渐进展开原则

渐进展开原则是处理复杂问题的技术

渐进展开是逐步减轻人们从易到难的过程,渐进展开也会隐藏复杂性,这样人们就只用简单的节面完成基本任务

渐进展开是一种必要且有用的技术,但是它也会吞没部分信息和功能,如何正确使用渐进展开原则可以参考二八定律

CleanShot_2025-08-28_at_17.27.592x.png

CleanShot_2025-08-28_at_17.28.122x.png

平面设计原则

平衡

视觉元素都带有视觉重量,较深的颜色视觉重量更重,较浅的颜色视觉重量较轻;

较大的元素视觉重量较重,较小的元素视觉重量较轻

平面设计中的平衡指的是视觉观感上水平及竖直方向上的平衡,比如下图

image.png

相似

当想展现的界面元素属于一类时,可以使用相似的设计来保持其一致性。

比如下图

左中右三组数据间距设置完全一致,唯独第三个采用了不同的设计

可以明显感觉到第三组是不同的内容

image.png

对齐

界面中的元素应保持视觉上的对齐。

如下图所示,无论左侧对齐、居中对齐还是右侧对齐,都会给界面带来秩序与整齐的观感

image.png

重复

重复指的是对同一个界面元素的复用

复用会让用户体验到软件的设计的一致性,也有助于用户识别你的应用。

image.png

比如上图,即便我将不同尺寸的方块、文字组合在一起,只要色彩是被重复使用的,你也会认为这是同一个产品

反差

当你需要突出界面中两个元素具备不同含义时,可以考虑反差。反差与平衡和重复的目的恰好相反,是为了突出其差异性。比如可视化的磁盘清理工具中,用户最不常用的文件用深色的大圆表示

image.png

留白

设计不是堆砌,并不是信息呈现得越多越好。

留白指的是在界面元素周边预留出空置区域。

留白并不意味着让你舍弃对新信息的呈现,而是思考什么东西要在什么时候呈现出来,不要一下子全部堆出来

image.png

结构

设计应用时,结构指的是各视觉元素之间的层级关系

层级关系可以用下图所示的方法排列

image.png

以 iPhone 自带的天气应用为例

整个界面元素沿屏幕中线对齐,界面左右两边几乎对称

image.png