很多童鞋在一开始接触 UI 设计的时候,会把 UI 设计单纯地理解成平面设计的电子化,直到后来接触到了
另外在实际工作中,也会慢慢接触到一些UI设计其他方面的知识,看似和 UI 设计关系不大,实际则很有用处,我们来了解一下。
客户端很好理解,就是安装在我们手机上的APP应用,苹果手机上的iOS 端和手机上的Android 端。
因为二者开发的编程语言是不同的,负责 iOS 端和Android 端分别有专门对应的工程师负责。
接下来,我们再来了解下服务器,服务器主要储存两类东西:app 的内容资源(数据库)和各种前后端的代码。
当我们打开APP,需要某些内容时,APP就会向服务器发起请求,让服务器把相应的内容发送过来。而服务器接到指令后就会向APP发送相应内容。这时候你想要的内容就会在APP上显示出来
后端是为客户端和服务器端各种数据传递、交流服务的,你可以简单地理解成负责 APP 后勤的部门。
我们经常会发现,APP会推送给孙俪被包养我们一些自己比较感兴趣的内容,这种手段叫做个性化推送功能。这个功能就是由后端代码根据你以往的搜索记录,按照专业的代码算法把你感兴趣的内容推送给你。
内容管理系统顾名思义就是专门用来对服务器上的内容进行增删改查。例如新闻类APP,该APP的运营编辑登录本公司的内容管理系统发布新闻,只有发布后的内容才会推送到你的APP上
有些社交类 APP本身就具备了 cms 的功能,我们发布信息和照片时会上传到相应的服务器,然后其他人把我们发布的信息从APP上下载下来,就能看到大家的动态了。
我们可以把它理解成,是所有 app 页面当中由内容管理系统控制或者由后台动态生成其显示内容的元素。简单地说,就是这个元素的具体内容是可被改变的,那这个元素就是一个字段。
在一般的内容型 app 的页面中,展示的所有元素的内容,有些是会变的,有些是不会变。会变的一般来说,一是通过后台管理系统来控制内容的显示,比如新闻标题,新闻摘要,新闻来源等等,二是通过后台计算后产生的变化数据,比如说一篇文章的点赞数、评论数,阅读数等等。而不变的一些元素一般就是在客户端内写死的,这些写死元素的内容只有通过更新客户端的版本才能进行修改。
APP 页面中有哪些字段是每个岗位都需要知道的,因为这涉及到后续的一些列设计和开发工作。产品经理一开始就需要把产品页面中所有字段整理出来,告知设计师。
设计师要清楚知道页面中的字段,比如说文字字段,文字的内容是会改变的,在排版的时候要考虑字数最多和字数最少的情况;图片字段,你要考虑图片是会不断变换的,图片的风格和处理方式对于后期真正 app 上线运营的效果都会有很大的影响。
有一些字段是可以根据设计师自身设计的要求来定义的,比如同样一个商品的标签的字段,你可以用纯文字的方式,也可以用图标的形式,当设计稿确定之后,这些字段的具体要求都需要梳理出来。比如我这个字段是文字的形式还是图片的形式,如果是文字,最多字数是多少,能不能不显示,超出这个字数如何显示;如果是图片,图片的尺寸是多少等等一系列的具体问题的解决方案,把这些整理好形成一个文档交给产品经理,以及客户端工程师和前后端工程师。
客户端工程师需要知道你的设计稿中哪些是字段,哪些是写死的(不可通过内容管理系统更改的)。如果设计稿中某个元素是活动的字段,他们在编写代码的时候会在该元素的代码中留下一个「接收器」,用来接收以后从 CMS 或者后台中传过来的数据,这样才能通过 cms 或者后台来动态控制元素中显示的具体内容。再比如,如果一个字段十个字,如果后端传过来的数据超过了十个字,客户端工程师也要知道这样的情况该如何处理,是用省略号,还是让文字折行或者直接不显示多出的文字……
前端工程师,CMS 的网站是前端工程师写的,产品经理或者交互设计师会出 cms 的后台原型,原型中会告知前端工程师所有的字段,包括输入文字的字数,上传图片的尺寸,以及哪些是必填项、哪些是选填项等等各种各样的具体要求。
后台工程师也要知道有具体哪些字段,他们会跟客户端工程师、前端工程师进行沟通,这样他们才能知道把服务器的数据传到客户端中的哪个接收器中去,如果有需要,他们也能对一些数据进行预处理。
设计师经常会遇到各种页面改版的问题,在原有基础上进行调整,是最设计师和程序员友谊的时候,如果你稍微不控制一下自己的脑洞,可能你觉得很简单的一个改动就会让程序员忙活大半天。
对于开发来说,新写容易调整难,调整代码是一件很费时费力的事情,这有点像我们好不容易合成好一报,然后甲方跟我们说,我觉得这个光源的方向应该改一下,这下好了,所有场景里物体的光影都要重绘。所以,调整代码并不是像外人想象的那么容易,很多代码调整的过程中会出现很多新的问题,开发人员都需要去一一解决。
在页面改版的时候,除非是产品提出需要,不然尽量要在保持原有交互逻辑和功能的基础上对页面进行改版。如果一定要动交互,最好和开发人员进行一定的沟通,让他们对改动的方向有一些了解,让他们有一些心理准备,同时也可以把你的思和开发人员进行探讨,说不定一些有经验的开发者会告诉你一些更好的解决方案。
一致性不仅仅是为了视觉上的美观和统一,在开发过程中,也可以大大减少程序员的工作量,如果你的页面的组件都是统一或者有一定逻辑性,程序员在开发过程中就可以按照你的设计逻辑进行开发,建立各种统一或者有一定逻辑变化的模块组件,后期代码调整过程中就能做到像 sketch 中 symbol 的作用,只要简单地改组件的参数,就能应用到大部分界面里了。