通往优秀 UI 设计师之路的 20 个路标

导读:界面设计师Joshua Porter在自己的博客中发表了这篇文章,文章中列举了20条用户界面的设计原则,这些原则是设计师们在设计工作中需要遵循的,它们能够给设计师们提供较好的指导工作。

界面的存在,促进交互作用

界面的存在,使得用户和我们的世界互动性加强。他们可以帮助用户清晰、阐明、启用等显示关系,它不仅让我们做事有效率,还可以管理我们的应用程序并访问相关的服务。设计界面的行为不是艺术,而是有规则可寻的。优良的设计界面可以激发、唤起和加强我们与这个世界的联系。

清晰度是项很重要的工作

清晰度是界面设计中,第一步也是最重要的工作。要想你设计的界面有效并被人喜欢,你必须要充分认识到界面是什么?人们为什么会使用它?要清楚界面对用户的交互作用,比如当用户使用时,能够预料到发生什么,并成功的与它交互。有的界面设计的不是太清晰虽然能够满足用户一时的需求,但放眼看它混淆的界面是没未来的。清晰的界面能够激起人们信息,并促使人们进一步使用。

不惜一切代价保护用户的注意力

我们生活在一个中断的世界。在日常生活中,总是会有许多事物分散我们的注意力,使得我们很难集中注意力安静地阅读。因此能够吸引注意力是很关键的。所以千万不要将你重要应用周围设计的乱七八糟分散人的注意力……记得屏幕整洁能够吸引注意力的重要性。如果你非要显示广告,那么请你在用户阅读之前显示完。保护和尊重用户的注意力,不仅让用户更快乐,还使得你的广告效果更好。因此要想设计好的界面,保护用户的注意力是先决条件。

保证用户的控制能力

人类往往都对可以掌控自己以及他们环境而感到开心。不考虑他人感受的软件夺走用户的控制力,迫使用户不得不进入计划外的交互,不仅让用户很不舒服,同时也会有意想不到的后果。保证用户的控制能力,让用户自己决定系统状态,稍加引导,我想你会达到你希望的目标。

直接操作是最好的

当我们能够直接操作我们世界的物理对象时,最好的界面设计是什么都没有。但这并不太容易实现,因为在界面设计时,我们增加的图标往往并不是必须的。比如我们过多的使用按钮、图形、选项、附件等等其他繁琐的东西以便我们最终操纵UI元素而不是重要的事情。而最初的目标呢?就是希望简化而能够直接操纵……,因此界面设计,我们要尽可能的少点界面封装,尽可能多的了解一些人类自然手势。理想情况下,界面设计要简洁,让用户有一个直接操作的感觉。

每个屏幕上都要有个主题

我们设计的每一个画面都应该有单一的主题,这样不仅能够让用户使用到它真正的价值,也使得它更容易学习,使用也更方便,更容易在必要的时候添加或修改。屏幕,如果支持两个或两个以上的主题会变得很混乱。像撰写的文章,应该有一个单一的主题以及强大的论点,我们的界面设计也应该如此,这是其存在的理由。

保持二次行动

屏幕与单一的主要行动可以有多个二次行动,但它们需要保持二次!您的文章存在的原因就是,人们可以在Twitter等上面分享它……,因此很多事物的存在,是为了人们阅读和理解它。因此保持次要操作能够使得视觉得到改善,以及帮助主要的行动实现。

自然过渡

很少有交互能够持久,所以深思熟虑的设计要考虑到交互的下一步。考虑到下一步的交互是怎样的,并且用设计支持它。这有点儿像对话,要为深入交谈提供话由。当用户已经完成该做的步骤,不要让他们不知所措。给他们自然而然继续下去的方法,以达成目标。

名副其实

人对符合期望的行为最感舒适。他人、动物、事物或者软件的行为始终符合我们的期望时,我们会感到与之关系良好。这也是与人打交道的设计应该做到的。在实践中,这意味着,用户应该可以预测交互元素如何表现而不用多加思索。如果看上去像个按钮,就应该表现得像个按钮。设计师不应该在基本的交互问题上耍小聪明,要在更高的层次上发挥创造力。

区分重点

接上条,如果视觉元素的行为不一样,那它们的表现也理应不同。反之,如果行为相同,则表现相同。这两点同样总要。为了保持一致性,初级设计师常常对应该区分重点的元素,用相同的视觉效果(往往重用代码),而其实区别对待才是合适的。

明确层级

视觉元素如果有清楚的浏览次序,那么应该明确它们的层级关系。也就是说,如果用户每次都按照同样的顺序浏览同样的东西,不清晰的层级,没法告诉他那里才是重点,最终会显得杂乱,使人困惑。在不断变更设计的情况下,很难保持明确的层级关系,因为所有的元素的关系都是相对的。如果所有都被强调,那么相当没有被强调。如果要添加一个特别重要的元素,设计师可能要考虑重设每一个元素,以再次达到明晰的层级。多数人不会注意视觉层级,但这是增强设计的最简单的方法。

恰当组织

正如John Maeda在其著作《Simplicity》中所言,恰当地组织视觉元素能够化繁为简,帮助他人更便捷地理解你的表达,比如内容上的包含关系。用方位和方向上的组织可以自然地表现元素间的关系。恰如其分地组织内容可以省去很多用户思考,他不必着琢磨元素间的关系,因为你已经表现出来了。不要迫使用户做出分辨,而是设计者用组织表现出来。

慎用色彩

物理世界的色彩会随光线改变而改变。艳阳高照与夕阳西沉时,我们看到的景物有很大不同。色彩很容易被环境改变。因此,设计中色彩不应作为决定性因素。色彩可以醒目,作为引导,但不应该是做区别的唯一元素。在长篇阅读或者长时间面对电脑的情况下,除了要强调的内容,应采用朴素或喑暗的背景色。当然,视读者而定,也可采用明亮的色彩。

循序展现

每屏只展现必须的内容。如果用户需要作出决定,则展现足够的信息供其选择,他们会到在下一屏找到所需细节。避免过度阐释或把所有一次展现的倾向。如可能,将选择放在下一屏以有步骤地展示信息。这会使交互更加清晰。

内嵌“帮助”

在理想的用户界面,帮助是不必要出现的,因为用户界面能够有效地指引用户学习。类似“下一步”实际上就是在上下文情境中内嵌的“帮助”,并且只在用户需要的时候出现在适当的位置。

设计者的任务不是在用户有需要的地方建立一个帮助系统,把发现用户需要的义务推诿给用户,让用户去在帮助系统中寻找他们问题的答案。而是应该确保用户知道如何使用你提供的界面,让用户在界面中得到指导并学习。

关键时刻:零状态

用户对一个界面的首次体验是非常重要的,而这常常被设计师忽略。为了更好的帮助用户快速适应我们的设计,设计应该处于零状态,也就是什么都没有发生的状态。但这个状态不是一块空白的画布,它应该能够为用户提供方向和指导,以此来帮助用户快速适应设计。在初始状态下的互动过程中会存在一些摩擦,一旦用户了解了各种规则,那将会由很高的机会获得成功。

宝贵的现有问题

人们追求解决现存的问题,而不是潜在的问题或者未来的问题。因为,不要为假设的问题设计界面,观测现有的行为和设计,解决现存的问题。这确实不是令人很兴奋的事情,但却是最有价值的事情,因为用户正在使用你的界面。

被忽视的伟大设计

伟大的设计有个奇怪的属性,那就是这个设计通常会被它的用户所忽略。其中的一个原因是这个设计非常成功,以至于它的用户专注于完成自己的目标而忽略了自己面对的界面。最后,他们完美达成自己的目标,从而不需要去反应什么情况。作为一个设计师,这个目标是可以达到的,当我们的设计很优秀的时候,我们不会受到很多阿谀奉承。伟大的设计师,会用优秀的设计丰富自己,因为满意的用户往往都是沉默的。

多领域设计

视觉、平面设计、排版、文案、信息结构以及可视化,所有的这些知识领域都应该是设计应该包含的部分。设计师对这些知识都应该有所涉及甚至专门进行学习。不要看不起这些知识,要从中获取许多值得学习的东西,以此来提高你的工作能力。设计师的眼光要长远,要能从看似无关的东西中学习,比如:出版、编程、装订、滑板、消防甚至空手道。

设计的存在必须有所用途

在大多数设计领域,界面设计成功的要素就是有用户正在使用它。就像一把漂亮的椅子,虽然精美但坐着不舒服,那么用户不会使用它,它也就是失败的设计。因此,界面设计不仅仅是设计一个使用环境,还需要是创造一个值得使用的艺术品。界面设计仅仅能够满足其设计者的虚荣心是不够的:它必须要有用!

基于 HTML5 的人脸识别技术

介绍一个网站,演示了通过 HTML5 + JavaScript 技术实现的人脸识别,目前仅适用于 Chrome 浏览器,首先需要在地址栏输入 about:flags ,然后找到“启用 MediaStream” 这一项,点击“启用” 后重启 Chrome 浏览器

然后打开下面地址:

http://neave.com/webcam/html5/face/

浏览器会提示你允许访问摄像头,然后你就能看到下面的效果:

当你摇头晃脑的时候,那副眼镜会跟着移动并帮你戴上眼镜。

你可以查看网页源码来了解具体的实现细节。

备注:你测试时所看到的头像不一定有上图帅!

移动互联网抄袭能走多远 投资人恨铁不成钢

“面对抄袭‘指责’,小型创业公司很‘委屈’:在中国移动互联网市场,抄袭可能会死,但不抄袭一定死。”

美食推荐类应用“食神摇摇”上周因涉嫌抄袭大众点评网被苹果应用商店下架。两商家关于内容“抄袭”争论,再次将中国移动互联网抄袭弊病呈之于众。

业内专家坦言,由于中国的互联网从创始之初就是模仿美国等国际网站,因此业界一直有“模仿”的传统。资料显示,网易、酷狗、盛大、UC、腾讯等 均先后卷入抄袭“口水战”。面对抄袭“指责”,小型创业公司很“委屈”:在中国移动互联网市场,抄袭可能会死,但不抄袭一定死。

投资人对于这样的说辞,虽强调,“创业者应该树立一个观念,抄袭并不能使你成功。”但当今互联网的发展已经进入“运营模式创新”阶段,一个主 意、点子,一个能够吸引网民参与的平台就能够决定整个公司的成败。前有大公司对平台和终端的双控制,后有消费者“薄情寡义”式的浮躁体验,小公司创新之路 并不宽。

苹果将食神摇摇下架

日前,大众点评对外发布声明称,一款名为“食神摇摇”的美食类APP大量抄袭大众点评网站上的商户信息、图片以及用户点评,“食神摇摇”与大众点评内容相似性达到80%以上,为此大众点评向苹果公司提交了相关证据。

5月23日,据多位网友反映,美食推荐类手机应用程序食神摇摇被苹果应用商店下架。记者核实后发现,从itunes页面中进入苹果应用商店显示“您要的产品目前在中国商店不提供”,且在应用商店中搜索不到食神摇摇的产品。食神摇摇至今未对此事做出任何回应。

“食神摇摇”被苹果下架的消息经微博传播,在用户中引起热议,一些用户纷纷留言说,“还好是免费应用,如果是付费应用,那产品下架了,我们的用 户权益该怎么办?”“难怪觉得这么像大众点评。”“一点都不好用!完全是在骗人,摇来摇去只有那几家,摇一摇明显是个噱头,好不好用,还要看线下的资料是 否靠谱。”

“移动互联网,产品为王,只有创新独特、尊重用户、关注用户需求的产品才是我们关注的对象。”一位投资者在与《国际金融报》记者聊天时坦言, “目前国内环境比较浮躁,再加上资本的逐利性,有些团队不惜通过抄袭、炒作以及触犯用户隐私等诸多手段,迅速在App Store等获得较高排名,但这些是昙花一现,很可能随时被淘汰出局。”

互联网成创新“阿斗”

正如该投资者所言,类似“食神摇摇”的抄袭现象在中国互联网业界,并非个案。清科投资总经理叶斌表示,在Instagram大火特火之后,就在国内看到了类Instagram的应用多达十几款,用户规模和产品体验都相差无几,严重的复制抄袭已降低了其被收购的价值。

数据显示,中国移动互联网2011年的投资热度依旧,已跃升为互联网行业中仅次于电子商务的第二大“吸金”领域。

根据China Venture的投融资数据,在披露的中国互联网经济投融资中,移动互联网领域占总笔数的17%,仅次于电子商务的36.8%。其中,披露的天使投资笔数 超过5笔,移动互联网迎来创业热潮。移动互联网领域众多新的概念提出,智能终端、移动网络等基础设施的改善为它们的发展提供了更好的土壤。

“目前发生在移动互联网的复制和抄袭行为,对于处在二线地位的公司来说,无论是获取资本青睐还是高成本的移动互联网人才,都面临着严峻的挑 战。”易观国际分析师齐剑哲分析指出,如果新的资本引不进来,而又无人收购,很大一部分移动互联网公司将会活在“剃刀边缘”——面临被清理出局的危险。

投资人恨铁不成钢

抄袭行为横行已经让投资者望而却步。“抄袭,尤其是抄袭核心模式、核心内容、信息的创业公司是根基不稳的创业公司,一旦投资企业的产品因为抄袭 事件被应用商店下架,这很可能最终演化为一桩失败的投资案例。”前述投资者告诉记者,目前,企业的维权意识越来越高,例如苹果应用商店等第三方软件平台鉴 于用户需求和自身平台的吸引力,在整顿“抄袭”之风上不遗余力。

拉卡拉董事长孙陶然在“首届中国天使投资人大会”时阐述了自己眼中的天使投资“铁律”和创业“军规”。孙陶然认为,中国产品所谓的“山寨”问题一直被外界诟病,主要原因是因为创业者比较急功近利,“许多人都没有觉得模仿和抄袭是可耻的,许多山寨产品竟然会登堂入室。”

孙陶然认为,创业者应该树立一个观念,抄袭并不能使你成功。在孙陶然看来,创业者最需“走正道、坚持创新、放下身段”。他认为,“走正道”是做人之道,也是企业之道;而创业者一定要通过创新来创业,“不要总想着复制和模仿,找市场空档。”

英特尔投资中国区投资总监吴蓉晖也表示,不能急于先做市场用户。而是把技术和产品踏踏实实做好,然后再去推广,比较好地平衡技术和用户、收入的 发展。一些公司急于发展收入,却没有做出收入模式,这样不能长期健康发展。他们希望投高技术、高质量、长期健康发展的公司,而不是为了几年就冲上市,那样 势必会后劲不足。

微软将进行开源的 10 大证据

【编者按:本文作者Richard Turner是曾经在微软工作了十年,罗列了十大证据证明微软已经在往开源的方向前进,究竟已经走了多远,又是否会对Windows 8等移动平台及整个移动开发环境造成多大的影响呢?】

1.鼓励开源的生态系统Windows和.NET开发者社区里面充满了开源的项目和提议,由 Ninject,AutoFac, Castle Windsor 和 StructureMap 等IoC/DI 框架,到nUnit等测试工具,由RavenDB等NOSQL文档数据库,到Orchard和Umbracon那种强大的文件管理系统,这些例子也只 是.NET/Windows 平台里众多开源项目的冰山一角而已。

2.减少无谓的反复“创新”

微软一直坚持自己开发完成别人在开源世界已经存在的技术的微软版本,这点一直让众多开发者不爽。所以当ASP.NET MVC3.0发布的时候还是让开发者们很惊喜的,因为这个微软第一次发布一个包括开源代码的主要项目,而 ASP.NET 4.0也增加了 jQuery Mobile & JSON.NET等更多的开源功能。

3. 和NuGet数据包管理器合作

数据包管理器对于开源生态系统来说非常重要,有了它开发者们才能轻松共享自己的代码, 而在2010年十月发布的NuGet能很好的弥补Windows/.NET 平台开源生态系统在这方面的不足,现在已经容纳了包括 jQuery, Modernizr, JSON.NET, ELMAH, log4net, Ninject等6000多个各大.NET开发者们需要数据包资料,虽然6000这个数字对比其他开源平台来说有点少,但是数据包的数量还在稳定增长中, 现在有的包也都非常有用,相信以后一定会变得更好的。

4. 把Windows系统优化成一个适合开源程序的平台

现在很多热门开源项目都是通过基于Linux的平台进行开发的,Windows想要运行这些项目就需要通过Windows的虚拟机才可以,失分不方 便,而微软已经在这方面做出了努力,2011年11月,微软就宣布通过新版的LibUV可以在Windows系统上稳定的运行node,同时,微软发布 了 IISNode ,让开发者可以在 IIS构建node。而在 LibUV 广受欢迎之后,其他开源项目现在都在都在做Windows系统的本地化。

5. 让接口多元化、规范化

这也是微软的开源社区已经走向成熟的标志,以去年十一月Antirez宣布微软提供了Windows可以本地运行Redis的端口这事为 例,Antirez并没有接受在Redis的核心代码中加入微软补丁的做法,而鼓励微软创建自己的Redis分支接口。而通过开源社区的努力,也成为了今 年开源社区第一个正式完成发布的项目。

6. Windows支持 Apache, PHP 和 Ruby 

从2008年开始,微软已经开始了这方面的努力,而现在不但在Windows 系统上可以构建Apache网络服务器,而且IIS也已经可以搭载Wordpress, Drupal, Joomla等给予PHP技术的网页和服务。

7.Azure支持众多开源平台 

在 Mix09上,微软已经正式宣布Windows Azure会支持 PHP, Java 和 Ruby 这些开源平台 。除了声明本身包含的内容,微软也在努力地提供各大开发环境的API,以求更多的开发者使用Azure服务。而在2011年11月微软宣布Windows 支持Node之后,微软也接着宣布了WindowsAzure与平台也完全支持Node。也预示着Azure会不断地向开源的方向前进。

8.支持 Hadoop

 去年,微软联合HortonWork宣布他们在努力地让Hadoop接入Windows,这是一个很重要的消息,因为这代表这微软宁愿放弃本身有的大数据管理项目而接受Hadoop,也代表着微软接受别人的产品的能力的提高,对所有人来说都是一个很好的消息。

9. 微软成为了Linux kernel 排名前20的资助者

十年河东十年河西,十年前微软的CEO鲍尔默还把Linux称为毒瘤,去年微软就成为了Linux最大的20个资助方之一。微软的资助主要围绕着让微软的的操作系统虚拟技术 Hyper-V能够搭建Linux系统这一个目标。

10. ASP.NET MVC4.0, WebAPI 和Razor引擎的开源化

如果说到微软和开源有关最重要的新闻,以下的声明一定不能不提:

  • ASP.NET MVC4.0, WebAPI 和Razor引擎会开源开发
  • ASP.NET 开发小组会考虑开发者社区提交的修改建议
  • ASP.NET 开发小组会公开地进行开发,将所有未来的更新代码更新到一个对外的服务器上。

小编语:

相信这些证据都足够证明微软正在朝着开源的道路上前进,这样的路线是能否能给Windows Phone带来足够的进步呢,有人说,Windows Phone的销量上不去是因为陷入了一个死循环,应用不多->销量上不去->没有足够用户->吸引不了开发者->应用不多。开源 化能否吸引足够多的开发者,成为打破这个死循环的关键点,大家拭目以待吧

文/雷锋网

Google 图片搜索的原理

针对这个问题,请教了算法组的同事,他分享了基本的思路:

对于这种图像搜索的算法,一般是三个步骤:

1. 将目标图片进行特征提取,描述图像的算法很多,用的比较多的是:SIFT描述子,指纹算法函数,bundling features算法,hash function(散列函数)等。也可以根据不同的图像,设计不同的算法,比如图像局部N阶矩的方法提取图像特征。

2. 将图像特征信息进行编码,并将海量图像编码做查找表。对于目标图像,可以对分辨率较大的图像进行降采样,减少运算量后在进行图像特征提取和编码处理。

3. 相似度匹配运算:利用目标图像的编码值,在图像搜索引擎中的图像数据库进行全局或是局部的相似度计算;根据所需要的鲁棒性,设定阈值,然后将相似度高的图片预保留下来;最后应该还有一步筛选最佳匹配图片,这个应该还是用到特征检测算法。

其中每个步骤都有很多算法研究,围绕数学,统计学,图像编码,信号处理等理论进行研究。

下面是阮一峰的一个最简单的实现:

你输入Google图片的网址,或者直接上传图片,Google就会找出与其相似的图片。下面这张图片是美国女演员Alyson Hannigan。

卢松松:Google图片搜索的原理

上传后,Google返回如下结果:

卢松松:Google图片搜索的原理

这种技术的原理是什么?计算机怎么知道两张图片相似呢?

根据Neal Krawetz博士的解释,原理非常简单易懂。我们可以用一个快速算法,就达到基本的效果。

这里的关键技术叫做”感知哈希算法”(Perceptual hash algorithm),它的作用是对每张图片生成一个”指纹”(fingerprint)字符串,然后比较不同图片的指纹。结果越接近,就说明图片越相似。

下面是一个最简单的实现:

第一步,缩小尺寸。

将图片缩小到8×8的尺寸,总共64个像素。这一步的作用是去除图片的细节,只保留结构、明暗等基本信息,摒弃不同尺寸、比例带来的图片差异。

第二步,简化色彩。

将缩小后的图片,转为64级灰度。也就是说,所有像素点总共只有64种颜色。

第三步,计算平均值。

计算所有64个像素的灰度平均值。

第四步,比较像素的灰度。

将每个像素的灰度,与平均值进行比较。大于或等于平均值,记为1;小于平均值,记为0。

第五步,计算哈希值。

将上一步的比较结果,组合在一起,就构成了一个64位的整数,这就是这张图片的指纹。组合的次序并不重要,只要保证所有图片都采用同样次序就行了。

卢松松:Google图片搜索的原理

得到指纹以后,就可以对比不同的图片,看看64位中有多少位是不一样的。在理论上,这等同于计算”汉明距离”(Hamming distance)。如果不相同的数据位不超过5,就说明两张图片很相似;如果大于10,就说明这是两张不同的图片。

具体的代码实现,可以参见Wote用python语言写的imgHash.py。代码很短,只有53行。使用的时候,第一个参数是基准图片,第二个参数是用来比较的其他图片所在的目录,返回结果是两张图片之间不相同的数据位数量(汉明距离)。

这种算法的优点是简单快速,不受图片大小缩放的影响,缺点是图片的内容不能变更。如果在图片上加几个文字,它就认不出来了。所以,它的最佳用途是根据缩略图,找出原图。

实际应用中,往往采用更强大的pHash算法和SIFT算法,它们能够识别图片的变形。只要变形程度不超过25%,它们就能匹配原图。这些算法虽然更复杂,但是原理与上面的简便算法是一样的,就是先将图片转化成Hash字符串,然后再进行比较。

文章来源:卢松松博客