“他们喜欢和cy钹一起跳舞,是其他诗人的枷锁。”
他们喜欢在这些羁绊中跳舞,即使是和另一位诗人一样穿着相同的镣铐。
—— Briss· Bliss Perry,美国文学评论家
闻一多在他的《诗的格律》文章中首先引用了佩里的句子,并希望表达诗歌的节奏有利于诗人的克制 - — “我担心的是更强大的作家,越是蹲下和跳跃跳舞的好时机。只有那些不能跳舞的人才会责怪他们的脚踝,只有他们不会创作诗歌才会感觉到那种气质是一种束缚。“
我认为这句话不仅适用于诗人,也适用于设计师。甚至艺术创作者也受到艺术规则,绘画材料和风格的限制,更不用说生产产品和用户的设计师了。以前的产品,但没有设计师,只需要开发人员制作操作系统,如DOS,Windows,Linux,以及第一代OICQ和Foxmail软件,直到他们意识到产品思维的重要性,用户的重要性。美丽界面的重要性,用户体验设计师事业的诞生,这是后来的交互设计师和视觉设计师。
因为设计师是用户和产品开发之间的桥梁,设计师不仅要有用户思考,还要有开发思维。因为如果您不了解产品使用的技术,您设计的产品可能不受限制。俗话说(WingST),“不仅仅是创造性的人,可以降落直到完成!”
首先,了解限制并实现设计价值
“不要将系统限制或条件视为限制,将其视为构建创意设计的基础。”
—— Luke Miller,《用户体验方法论》
米勒的声明讲述了设计与技术之间的关系,我认为这是理所当然的。
1. 设计师最擅长的是构想
在没有设计干预的情况下,技术组合的产品非常易于使用且易于学习。就像裸露的表面一样,它非常实用,但却毫无生气,容易迷失。这时,设计师来了,说这是不可能的。我可以给你这样的优化,并给出一个完整的设计理念。真的很美。这时,植被,建筑物和表面的大气层形成了新的产品。老板对桌子说:“看看吧,让我们开始!”
2. 寻找设计的支点
给出的设计理念非常漂亮,但很多设计师在这个实施步骤中都傻眼了:剩下的就是开发,我不知道如何实现它,怎么能做不到,它无法实现呢?
在许多情况下,你不能责怪发展。最好帮助你的发展同学考虑一下。你如何设计你的土地以实现更好的目标?
例如,如果您想快速掌握用户的地理位置,您应该知道手机上有GPS模块。 APP具有快速获取用户手机定位信息的界面。定位的经纬度可以转换为省市区;例如,你想做一个。您可以根据用户手机的倾斜角度更改形状。您应该知道手机上有一个名为陀螺仪的模块。它如何感知手机的倾斜角度以及可以返回哪些参数来表示这些角度?恢复设计的准确度如何?例如,如果要实现非常酷的动画效果,您应该了解Android和iOS上的动画实现原理。如果您正在进行Web或PC端设计,并且移动端的动画实现不同,这些实现是否可以恢复您的动画效果?例如,如果您想要执行图像智能识别或智能语音翻译功能,您应该了解哪些公司正在执行此功能。他们如何分别实现这些目标?您的开发团队是否有相应的技术储备?你能直接找到与这些公司的合作吗?
即使你没有做一些创新,但要确保你所做的设计得到很好的发展和恢复,你也应该知道点裁剪方法,Retina屏幕的切割比例,iOS的基本控制库,实现原理响应式设计等,了解这些,您的设计可以找到与技术连接的支点。
3. 实现设计的价值
只有基于这些与技术相关的支点,您的设计理念才能真正落地,形成新的“氛围”。由于技术限制和开发周期限制,您的设计通常无法实现100%,但只要您的支点足够强大,您的设计概念就可以最大程度地恢复。
只有真正恢复的设计才能构成设计的价值。
就像诗歌的节奏一样,设计师也是一个与cy钹共舞的舞者。这些“技术枷锁”并不妨碍你的舞步。相反,正是因为佩戴它们才能比其他人跳得更多。好吧,你变得与众不同,你的设计比其他人更有价值。
不要让你的设计成为一个大胆的想法。如果你想到它,但你没有意识到它,它将成为一层薄薄的泥。那些只是毫无价值的设计。
第二,接受限制,找到技术边界
“尽可能多地了解您正在设计的系统的性能和局限性。这将有助于您改善理想工作流程的流程,并能够为您的设计添加新功能和交互。”
—— Luke Miller,《用户体验方法论》
要理解开发思路,首先要解释程序员经常挂起的“算法”。只有了解算法才能真正理解发展思路。
1. 算法的本质
算法是对解决方案的准确而完整的描述。这是解决问题的一系列明确指示。该算法代表了描述问题解决策略的系统方法。也就是说,可以在特定规格输入的有限时间内获得所需的输出。
——百度百科全书
关键词:问题解决,输入和输出。
基于这三个关键字,我们可以推导出算法的数学方程式:
Y=U(X)
X是输入,Y是输出,U(X)是最终可以基于参数X(算法)导出Y的函数(解决方案)。
最简单的算法,当您按下开关时,指示灯亮起。按下开关的动作是输入X,灯亮是输出Y,从开关的结构到导线的排列,电源的介绍,整个电路方案的设计和开关是算法U(X),它解决了按开关打开灯。
同样,你在微信上按住一个声音,这是输入X,朋友收到你发的声音,这是输出Y,这个声音从你的微信到你朋友的微信的解决方案,是算法U( X)。您还可以继续考虑其他示例,例如您在京东下订单,将货物从电子商务平台的仓库转移到您的手中,这也是由算法完成的。例如,如果你的女朋友说她想要一所房子,那么你有办法最终买房子,当然还有算法。
开发同学的好处是他们有很多强大的算法可以将你的设计恢复到APP,网站和各种形式的软件产品。您的设计是他们的输入,最终产品是输出。
所以,上面的等式Y=U(X)实际上是算法的本质:你想得到输出Y,然后给我输入X,我会找到一个算法U(X)来帮你解决。
2. 改变输入方式
许多学生会抱怨同学的发展水平无法实现,他们也无法实现自己的设计。在这种情况下,让我们考虑一下你是否给学生开发了以下传统的输入法:
你的设计理念是完美而且非常好,但是你给同学的只是一个交叉的草稿,黑白线框和工艺描述,以及看起来华丽但不动的视觉印象。你认为他们是对的。你能理解这种输入多少钱?恐怕不到一半。其余的开发学生必须自由地玩,否则会有事情发生,但会有错误。而且,开发时间还是那么小,老板找不到设计师的催促进度。
根据这一点,你了解,在开发同学的眼中,你给出的输入X就是这个。我只能使用算法来实现我想象的输出Y.至于你的想法,我不知道,让我们先做。再看一遍。
但现实是残酷的,最终结果往往是南方。
为什么不尝试更改输入法?
还记得我在《腾讯高级设计师:交互知识树系列之视觉思维》文章中提到的计算机管家火箭吗?
我们为小火箭重新设计了一个新的发射动画。它比原始时间更短,更加加速。火箭将在上升期间旋转,这真的很酷。当然不清楚依赖交互式草稿和视觉草稿。为此我们为它制作了一个高保真的视频演示:
培养同学:“嗯,我明白,这真的很快,但我很快就看不到,我怎么能这样做?”
我和愿景:“等一下,让我们想办法。”
当然,我们不会让开发学生逐帧研究视频。他们没有努力工作,我们正好相反。我们在Visual Basic中编写了一个Demo程序,并在Video Demo中实现了一个具有非常简化功能的多段加速动画:
根据我们的老板的说法,将这些代码直接投入到开发中就足够了,他们可以理解它。
然而,对方长时间的沉默使我看到了他的心:“多么鬼,懒得学习!”
所以我不得不做出“最后的伎俩”。我自己学习了Visual Basic,我自己理解了这个功能,然后我在纸上努力了,最后给了一个详细的动画“指令”,
本手册包含哪些内容?
整个小火箭的动画,从点击开始,动画分解小火箭的每一步,细致到每毫秒的动作;在每一毫秒的过程中,每个部件如何移动,方向,速度,当然包括几个小火箭升级阶段的分解;小火箭旋转需要播放一组序列帧动画,通过开发可以实现的最小粒度是10毫秒来播放一帧,我会从每个时刻到哪个帧了解哪个帧播放。
写完之后,我拿起这本手册,搬到椅子上坐在开发同学身后。
“来吧,看看这个,我们会改变一点,以确保完美的恢复,效果对我不好。”
通过这种方式,我们的设计支点得到了改进,我们更接近我们的设计理念,最终结果非常好。
如果你想做一个创新的设计,你可以改为这个“输入法”:使用高保真原型来展示你想要的设计效果,然后使用动画手册来全面解释设计。每个细节都确保传递给开发同学的输入X足够准确,以便他可以使用算法来帮助您实现完美的“输出Y”。
细心的朋友可能已经发现,在寻找最佳“输入法”的过程中,我们也使用算法思维(我们甚至编写代码),并不断改进他们给出的“输入材料”。最后一本“动画手册”。
3. 模块化设计
为什么我们每次都要做这么多的输入,输出和算法呢?为什么我不能修复现有算法?
当然,开发同学最喜欢的是修复算法。这是“模块化”。
熟悉iOS平台的学生必须知道Apple将为每个版本的系统提供“设计模板”。实际上,这些是学生可以在Xcode开发环境中使用的“算法模块”。如果您正在设计这些模块,则可以通过修改一些参数来重复使用它们。
例如,在iOS系统中,从下到上有一个名为“Action Sheets”的菜单。 Apple的设计人员和开发人员会考虑其各种用途,然后将其打包成“算法模块”。 。
如果要使用它,只能使用一个“操作”,或者可以使用3个或更多“操作”。您甚至可以使用可以水平滚动的方案。所有这些变化,对于你只需复制和粘贴并在设计模板中更改几个单词,对于同一个同学的开发,他也只需在Apple控件库中调用ActionSheets控件,然后更改几个参数即可。
大大简化设计和开发过程的是算法模块,即积极制造这种模块的过程,称为“模块化设计”。
也许你感觉不到控制,让我们来看看Apple的官方网站。
您必须熟悉此iPhone的产品页面。它实际上是典型的模块化设计。我们来寻找它。
如上所示,它实际上包括页面导航模块,模型选择模块,页面主要字幕模块,相关链接模块和产品图像模块。这些内容可以根据需要定制,只要简单更换,即可立即成为另一页,如下图所示。
这很容易吗?
不要低估模块化设计,使用它来设计好看的页面然后重复使用它。对于设计,形成了设计规范。对于开发同学,他可以使代码成为可重用的算法。模块U(X),您可以随意更改输入X,您可以使用此模块快速生成您想要的输出Y.
因此,目前有一个模块意识的交互设计师,他将在合理设计页面功能的情况下尽可能地重用设计,并与视觉设计师一起将它们固化成模块,就像在生产乐高积木。这样,只要主页面和主要样式设计完成,剩下的页面就只是根据当地情况进行合理的组装和修改。
现在你明白为什么开发人员喜欢GitHub了
开源网站
?就像我们在Dribbble和Behance上寻找设计灵感一样,他们也在为其他人学习算法模块。