开发人员拒绝按照 UI 标注还原设计,如何让他理解精确还原的重要性,从而去修改代码?

当一个开发工程师屡次发问「这里让我移1px有什么意义,我为什么要浪费时间这么做」且拒绝修改时,如何让这位开发理解、认识到修改的重要性? 为什么国内很多视觉设计师得为了那些虽然看起来很细碎、甚至可谓之鸡毛蒜皮——但对于设计师还是很重要——的细节追着工程师去修改,一项项列出问题,却得不到工程师正面的回应?举个例子,听同事介绍过 Frog 的工程师会为了不影响视觉设计师工作,自己开发出检查设计还原的软件进行还原…
关注者
1505
被浏览
442416
“举个例子,听同事介绍过 Frog 的工程师会为了不影响视觉设计师工作,自己开发出检查设计还原的软件进行还原检查修改。”

Frog很牛掰嘛?是业界典范嘛?
本座只知道Google至少在2012年的时候还是绝对的工程师文化,设计师没有话语权,别说1px,程序员能把界面做得像设计师的图样,设计师就感动得哭泣了。知道为啥Google的界面都那么死板不?因为程序员首要考虑的是这个界面可否运行全自动单元测试,设计成全白背景单色图标之类,UI组件容易被单元测试代码定位。当然了,Google的设计也确实不好用,Geek气息十足,而Google近年来也确实开始重视设计语言(Android L等);不同的公司有不同的侧重点,你作为设计师跑到不同的公司地位也会是不同的,这里并没有统一的标准。

好了八卦完毕,开喷。

首先请LZ摆正姿态,说个很直白很糙的道理:

对于软件开发而言,码农的工作是必需的。设计师的工作是可选的。

没人做设计,软件也可以用。实际上在扁平化的今天,许多开发比如iOS,系统默认的模版虽然不好看,但也不会是个毛胚房。但没人写代码,那就是屁也没得。

工作的重要性决定谁听谁的。就是这么简单。

===============

本座作为开发团队首席,再谈具体工作中的问题,以iOS为例。

设计师不懂编码,不懂软件工程。这里并没有“看不起”的意思,事实上设计师不可能像程序员一样对软件平台了解到代码级的细节程度,分工不同。但这一点就决定了最终产品不可能百分百还原产品原先的设计:

1. 你的设计本来就不可能照顾到所有的方面。你可以画一个iPhone 5的1:1的界面示意图,但你会把iPhone4, iPhone5, iPhone6, iPhone6+各种不同分辨率都画一遍吗?你会把每个屏幕每一种可能的情况都示意出来吗?软键盘升起的时候UI是什么表现?文字标签的动态文字在有限空间下根据长度动态缩放是什么效果?不同界面之间的动画过渡是怎么样的,动画时长是多少,等等。设计不可能面面具到,而这些细节最终都要工程师自行定夺。

2. 你的设计可能在Photoshop里就是加个滤镜的事,但软件上就是难以实现。举个例子,有个设计师要求实现全屏动态高斯模糊效果(注意不是iOS7的白色毛玻璃效果)。要做不是不可以,开个OpenGL窗口然后加上高斯模糊的pixel shader应该可以吧,然后一个app占用20%的GPU就是为了某一屏能高大上。犯得着吗?

3. 即使你的设计在技术上可行,从软件工程方面必须考虑这个设计带来的系统复杂度,性能影响,等等。比如那个动态高斯模糊,如果是个游戏那肯定要做,但你一个普通app在某一屏要用高斯模糊,我犯得着给你上OpenGL吗?很多时候要有权衡,比如动态高斯模糊不能做,但是静态的可以,这个时候让设计师有点让步不过分吧。

4. 要求px级别精准的话,设计师要在设计文件里明确标定UI元件坐标是多少,长宽多少,尺寸变化的准则是多少(是自动变大?固定大小但是缩小内容?横竖屏切换的时候拉伸至屏幕边缘?按比例拉伸?不拉伸?)。要求程序员打开你的Photoshop文件然后用定位来查找具体尺寸那基本是不可能的事,大家都很忙好不好。再说程序员的工作站上一般不会装Photoshop(License是要钱的我们不用盗版),就算装了,也没有那么多内存在开了一堆IDE窗口的情况下再开Photoshop。你要是不精确标定,程序员也就是肉眼看看然后在界面设计工具里扒拉一下,看看差不多就可以了。另外,界面设计工具可不比你的Photoshop,是看不到最终界面效果的,顶多看个大概,很多情况下(比如动态内容)连“大概”都是看不到的。某些设计师不太能理解这一点。

5. 你提供的素材要非常标准。以字体为例:要么使用系统标准字体,如果要用自带字体的话请保证你那个从网上扒拉下来的字体符合规范。我们就遇到过自带字体不符合规范的情况,直接结果就是导致使用这个字体的标签在视觉上无法跟其他UI元件对齐。再有,裁剪出来的图片请把周边透明部分trim掉啊,2x的图片的尺寸要是1x版本的两倍啊,你出个图片带透明边的,1x明明是44 x 44但2x是90 x 90的,你要程序员怎么给你精确对齐。

====


总结下:

不管是设计师还是程序员,各自的喷点都很多,但一个团队每天早晨的SCRUM meeting时候对喷一下也未尝不是好事。关键是互相理解。但回到最终的问题答案:要最终产品100%还原设计,那基本是不可能的事情,这点大家都要妥协。