2009年春节后,北京海淀,向阳软件研发中心。
这里的氛围和春节时的喜庆截然不同。几百平米的办公区里,弥漫着浓重的咖啡味和焦虑感。白板上画满了复杂的架构图,地上到处是揉成团的废纸。
“林董,这真的没法改。”。图标是随意的,菜单是黑底白字的列表,交互逻辑是点击。您要求的什么‘拟物化’,现在的系统资源根本跑不动啊!”
屏幕上,是一台原生的安卓模拟器。那粗糙的图标、生硬的线条,在2009年的审美看来或许还算“极客”,但在林向阳眼里,简直就是简陋的半成品。
林向阳穿着一件黑色高领毛衣,牛仔裤,手里拿着一瓶矿泉水。他没有理会设计师的抱怨,而是拿起一只做工精致的机械表,放在桌子上。
“听着。”林向阳的声音平静而偏执,“我们不是在做代码,我们是在做艺术品。”
他指着那块表:“用户摸不到代码,他们只能摸到屏幕。他们不仅要‘看见’,还要‘感觉到’。
“什么叫拟物化?”林向阳拿起笔,在白板上画了一个圆角矩形,“便签图标,就必须看起来像一张真的黄纸,要有纸张的纹理,要有撕裂的边缘感。时钟图标,指针必须会动,要有秒针走动时的阴影变化。我要让用户看到图标的一瞬间,大脑皮层就能产生触碰实物的幻觉。”
“可是林董”旁边的系统架构师插嘴道,“现在的手机只有256b内存。如果要渲染这么复杂的纹理和光影,系统会卡成ppt。这不符合工程学。”
“工程学服务于体验。”林向阳打断了他,“如果系统卡,那是优化做得不够。王博呢?”
“在里面闭关呢。”架构师指了指角落里一间挂着“请勿打扰”牌子的玻璃房,“三天没出来了。”
林向阳推门走了进去。
房间里黑洞洞的,只有几台显示器的光。王博头发乱得像鸟窝,正对着屏幕发呆,双眼布满血丝,嘴里念念有词:“摩擦力惯性衰减系数”
“卡在哪了?”林向阳拉过一把椅子坐下。
“列表滚动。”王博指着屏幕上的模拟器,手指在触摸板上划了一下。
屏幕上的列表瞬间滚动,然后当手指离开时,列表像撞墙一样,“啪”地一下死死停住。
生硬,机械,没有任何美感。
“太假了。”王博抓着头发,痛苦地说,“现实世界里,你推一个东西,它会有惯性,会慢慢停下来。但代码里没有物理定律。我试了几十种算法,要么滑得停不下来,要么卡顿。”
“王博,闭上眼。”林向阳轻声说。
“干嘛?”
“想象一下。”林向阳拿起桌上的一杯水,轻轻晃动,“水。水是有张力的,也是有阻力的。”
“当你的手指划过屏幕,就像划过水面。你用力,水波就快;你松手,水波会因为阻力慢慢平息。当列表拉到顶端时,不应该撞墙,而应该像拉一根橡皮筋,拉得越长,回弹的力越大。”
王博猛地睁开眼,盯着那杯水。
“橡皮筋回弹非线性衰减”
他眼中的迷茫迅速消退,取而代之的是一种狂热的计算,“对!不是匀减速运动!是基于弹簧阻尼模型的非线性运动!得加一个反向的虚拟力场!”
王博扑向键盘,手指快得像是在弹奏钢琴。
林向阳没有打扰他,静静地退了出去。
三个小时后。
那个玻璃房的门被猛地推开。王博手里举着一台刷了新系统的原型机,像个疯子一样冲进办公区。
“成了!成了!”
所有工程师都围了过来。
王博把手机递给林向阳,手都在抖:“林董,你试试。”
林向阳接过手机。屏幕上是一个联系人列表。
他伸出大拇指,轻轻向上一划。
列表像涂了油一样顺滑地飞了出去,然后随着动能的消耗,极其优雅、自然地缓缓减速,最后温柔地停下。
那种感觉,不像是在操作一台电子设备,而像是在拨动一个精密的物理转盘。
接着,林向阳又用力把列表拉到最底端,没有松手,继续往下拉。
列表没有死机,而是像被拉伸的橡皮筋一样,露出底部的背景,产生了一种令人愉悦的紧绷感。当他松手时,列表“嗖”的一下,q弹地缩了回去。
“哗——”
围观的工程师们爆发出一阵惊叹。在这个电阻屏还在用指甲戳、列表翻页还要按进度条的年代,这种“跟手”的物理反馈简直就是黑科技。
“这手感……绝了!”刚才那个抱怨的设计师两眼放光,“就像这屏幕是活的!”
“这就是系统的灵魂。”
林向阳看着屏幕,眼神中流露出一丝满意。这只是ios在两年前就做到的事情,但在2009年的安卓阵营,这是独一份的降维打击。
“ui界面,正式定名为——fire ui(火种)。”
林向阳抬起头,宣布道,“我们要用这个火种,烧掉诺基亚和摩托罗拉的旧世界。”
“那底层系统呢?”王博擦了一把脸上的油汗,兴奋地问,“咱们改了这么多底层驱动,几乎把安卓重写了一半,叫什么?”
林向阳走到窗前,看着远处连绵的西山。
“安卓是机器人的名字,冷冰冰的。”
“我们的系统,要承载万物,要有山川之重。”
他回过头,吐出两个字:
“昆仑(kunn)。”
“昆仑出,万山朝。这就是我们未来的基石。”
2009年2月,在这个倒春寒的季节里,后来被称为“国产机皇之父”。
它不完美,甚至还很卡顿,但它第一次让机器拥有了如同水和橡胶般的生命力。
喜欢。