在经历了十多年的服务端开发之后,我决定涉足移动开发。当时我预期我将遇到一些困难,比如说技术。但实际上,在进行安卓和 iOS开发的半年时间里,技术从来不是一个问题。不管看似先进实则老套的Java,也不管诡异奇葩的 Objective C,这些都没有让我有太多的困惑。然而觉得难以逾越的是对于设计和界面的把握。
习惯于大量配置脚本、功能开关的后端程序员很难一下子适应移动应用的要求,所以做出来的应用会让人觉得充斥了各种功能,然而又难以找到如何正确使用这些功能的方法,并且界面的设计简单甚至堪称丑陋。这实在让人觉得崩溃!那么,展示到用户面前的移动应用应该是什么样的?
为什么要使用这款移动应用,给一个理由先?内容!这是让用户做出这一决定的最主要的原因。
用户在使用一款应用之前对其能做什么都有一定的期望,如果用户没有办法在第一时间内找到他所想要的内容,或者做不到他想做的事情,那么他会在第一时间把这款应用删掉,一方面移动设备的空间还是很宝贵的,另外一方面,现在用户可以选择的应用也实在太多了。所以我们不能含蓄地将最重要的功能隐藏在角落中,而应当直截了当地在第一时间呈现到用户面前,甚至不惜使用引导页之类的手段让用户尽可能快地了解他能在这里做什么。
微信在这方面做得非常突出的:聊天以及和聊天相关的通讯录功能占据了四个 TAB 中的两个,其它各种功能,不是被挤到了单独的一个 “发现” TAB,就是被零碎安排到了其它角落去。微信非常清楚地知道什么是最重要的功能,什么是附着在这些功能之上的。
从所有可用的功能中挑选出最重要和最适合在移动设备上使用的内容放入移动应用,是开始设计的第一步。
作为一个随时随地都伴随着用户的手持设备,它会占据用户大量的时间,然而这些时间是碎片的,长的不过几分钟,短的只有一瞥的时间。如何在这么短的时间让用户得到他所要的信息,是几乎所有移动应用需要考虑的问题。
从单个功能开始设计,其实不需要给用户太多的选择,用户没有时间、也没有兴趣来配置这个应用,所以在操作流程中的各种开关和属性都是干扰用户使用的枝枝蔓蔓。用户没有太多的时间浪费在阅读冗长的说明、寻找所要的信息、按部就班地完成你指定的步骤。让用户的注意力能够快速地集中到他需要完成的关键性任务上,这样用户才不会觉得使用这款应用是在浪费时间。
Uber在整个叫车过程中,最少只需要一次用户的干预,最大程度将用户的注意力维持在他想做的事情上。这唯一的一次干预,就是用户当时最想要做的事情:叫车。其它相关的操作,例如支付、确认,要么在之前或之后处理,要么利用定位等技术自动完成。
Uber体验:给中国人用的美国产品。一个界面只需要一条关键的信息、让用户做出一个动作,在绝大部分的情况下都是足够的了。
3.精致
然而”简化“并不和“简单”是同义词。在功能上的简化并不意味着简单的界面设计,相反,为了能在狭小的移动设备屏幕上展示所需要的功能,精致到极致的设计是非常必要的。
移动设计一直是在矛盾中前进的。简化功能和操作,但不引起歧义和误解,其实应用比任何时候都更想传递给用户更多的信息。这样通过明确的图形、文字、控件等界面元素,充分利用色彩、布局、行为等元素来影响用户,这需要的不仅仅是高超的界面设计技巧,同时还要考量心理学等更加专业的知识。
另外一方面,精致的设计让用户觉得愉悦,乐意在应用上多停留一秒——相对于原本用户留给应用不多的几秒钟而言,这已经是很大的进步了——从而多一分机会让他尝试一个新的功能。精致也是一个更加专业的体验,对于应用以及应用背后的开发团队增加了信任。
Timeline,一款新闻客户端软件,通过时间线将热点新闻串接起来。清晰整洁的设计,可以让人专注于内容本身,在阅读过程中各种展示元素默默地提示着读者,但又不打断读者的阅读体验。
准确并精致的应用设计让应用从用户心目中的“可用”变成了“好用”甚至“最好用“。
好吧,最后我们讨论技术 。这不是在说 iOS、不是在说安卓,而是在说新技术。
作为快速变化的一个科技前沿领域,在移动设备上使用最新的技术一向是不遗余力的:触摸、GPS 定位、拍照,这些已经普及到都可以被称为“传统移动技术”了;识别、NFC、气压、心跳,这些新一些的技术大家也都已经能耳熟能详了。所有这些技术开始不断影响我们的生活,也给我们的移动应用扩充了功能领域。不管是有意或者无意的,可以减少了需要用户直接介入的交互,达到之前所说的简化的目的。另外一方面,新的技术使得某些功能的实现成为可能,相当一部分的创新由此达成。
很显然,现在还没有到完全发掘这些技术潜力的时候,大量的新技术本身都尚在尝试之中,因此如何在移动应用中合理使用这些新技术,将会是一个挑战。
区别与传统的桌面应用,移动设备独特的使用场景和硬件特性,使得需要完全不同的设计思路和设计理念。为了能够让应用在诸多同类应用中脱颖而出,需要花费在设计上的精力将远远高于此前任何一个时代的应用软件。