虚拟键盘深入对比评测:iPhone VS Android
By Lukas Mathis from ignorethecode.net | Logout译,转载请注明ifanr.com译文链接。
Lukas Mathis的这篇细节评测深入分析了Android和iPhone在软键盘上的差距,系统总结了差距背后的原因。感谢lordhong在Twitter上的推荐,这里顺便推荐一下他的Blog,如果你还不知道的话。
虚拟键盘的优点在于可以让大屏设备保持一个苗条的身材。虚拟键盘缺乏物理键盘在输入手感上的先天优势,只能敲击屏幕上的一堆像素。为了让用户能够与这种系统进行有效的交互,它必须做到完美,需要采用一些小技巧帮助用户避开这种输入机制的固有缺陷。
对比iPhone和使用Android系统的HTC Magic (G2),就会发现虚拟键盘能够造成的问题以及应对之策。在iPhone上打字——特别是打英文——非常顺手,也许比物理键盘上更好。在HTC Magic上做同样的事则非常恼人,错误连连。请注意,其中有些问题是由Magic本身而非Android系统所造成。
尺寸
HTC Magic和iPhone有着相同的像素面积:
整个键盘,乃至每个按键的像素面积都基本相同,不过Android在空格键左右适宜的添加了逗号和句号:
但HTC Magic屏幕的物理长宽均为iPhone的90%。这听起来或许无甚大碍,但实际上对可用性影响很大。下图是物理显示面积对比:
接下来轮到键盘,同样是物理显示面积对比:
哪怕长与宽仅差10%(之所以不用19%左右的面积差差距,是因为在这方面宽度远比长度更重要),HTC Magic的键盘还是要小许多。这带来了两个问题:
首先,这降低了按键准确率。我用iPhone时很少按错,用Magic时常常按错;
其次,被手指遮挡住的部分所占键盘比例更大。
这让观察自己所按按键更为困难。不得不承认,我的手比较大,有些人可能会更喜欢HTC Magic稍小的屏幕,但哪怕是他们也可以在更大的屏幕上实现更精准的点击。
注意力
使用物理键盘时,用户的注意力集中在屏幕显示的文字上。没必要看着键盘,因为按键不会移动,而且键盘的物理特性也确保了用户的手指定位。虚拟键盘就不同了。哪怕手指最细微的位移也可能导致错误点击。更有甚者,虚拟键盘本身就可以变化。在绝大多数情况下,虚拟键盘用户会将注意力放在键盘而不是屏幕所显示文字之上。
这就意味着误按时的字母提示必须明显,能让用户在只看着键盘的情况下也可以注意到。由于用户的手指挡住了按键,单纯高亮按键无法提供足够的反馈,现在两个系统的字母提示都在按键上方弹出:
不幸的是,iPhone可以在按键瞬间显示出所按字母,但Android上有延时。一开始我怀疑这是硬件速度造成的延迟,但后来发现模拟器上也有延时,这只能是刻意而为。延迟是如此之严重,以至于打快了以后,根本就不弹出字母提示了。
演示视频下载,体积很小
这个小设置在实质上将字母弹出提示无效化,强迫用户不断在键盘和文字输入栏之间不断移动注意力焦点。这减缓了我的打字速度、不断打错单词、字母。
速度
尽管此前iPhone的键盘速度并不像3GS上这么好,但从按键到出现字母绝对没有延时。iPhone显示字母的速度可以和你打字一样快,Android做不到,这就带来了一些问题:
首先,你常常得打上几个字母之后才能看到单词,Magic的速度就是跟不上。
其次,Magic有时会在用户已经开始打新的单词以后纠正之前的单词。打完单词后的变化往往并不明显,因为延时太长。结果就是你常常看不到自己真正打出来的词,而且即便你打对了,Magic也有可能在你打完很久以后“纠正”它。
自动纠正
自动纠正是Android胜过iPhone的地方。iPhone仅向每个单词推荐一个纠正,而Android提供好几个,从用户尚未打完整个单词之时就开始推荐。
打长单词时,往往刚打了几个字母就看到正确的单词出现在列表中。不过我不确定这在效率上到底是不是有益无害的,因为你把少打字省下的时间花在了查看推荐单词列表上,但这样在感觉上确实更好。
iPhone会自己添加你使用频繁的词,而Android可以手动添加单词。和iPhone一样,Android也有绕开你想打的词的趋向,但你可以在Android上通过手动添加单词修复这种问题。(iPhone上就要另辟蹊径,新建一个叫Fucking的联系人)
两款手机都会自动为can’t等词添加’。和iPhone不同的是,Android不会坚持将所有的its替换成it’s。这两个系统也都有标点符号快捷键,特别是两次空格会按照英文输入习惯自动变成句号+空格。
按键动态缩放
iPhone会自动调整不可见的“触摸区域”来方便你打字。David Pogue是这么描述的。
尽管无法用眼睛看到,但iPhone键盘的按键面积是实时变化的。就是说软件会根据概率自动增大特定按键的“触摸区域”。
举个例子,如果你打了N,那么下一个字母不太可能是H,但很可能会是G。iPhone就会相应的增减这两个按键的触摸区域。如果你打了N再按到G和 H之间的间隔,iPhone就会判断你想打的是G,因为NG是英语里的一个常用字母组合,而NH并不常用。(住在New Hampshire的人除外,该地的缩写是NH)。
这常常会致使你在输入iPhone不支持的语言时出现错误,但对它支持的语言来说,这确实颇有助益。就我目前的观察来看,Android似乎根本没有这种按键缩放——在用了不支持这种功能的软键盘之后,你才知道自己到底有多么依赖它。
译注:这样的设计贯穿与iPhone的UI,KKK此前的触不到的按钮对此也有评述。
语言支持
iPhone的虚拟键盘可以快速切换所用语言,并会自动切换到该语言的纠正用字典。而Android无法快速切换键盘语言设置,即便设置内切换了Locale也不会更换软键盘键位。(译注:谷歌、HTC等输入法可以直接快速切换输入语言,但这样就替换了系统软键盘,而这两个输入法的英文输入体验远不如系统软键盘)
两个系统都可以通过长按字母键输入大/小写,也都可以切换到数字和特殊符号的第二键盘。用户可以在iPhone上用手指从“数字键盘”键划至特定的数字或符号,它会在输入该数字/符号后自动切回普通键盘。Android没有这个快捷操作。
横向键盘
两个系统均提供横向键盘。横置手机会自动切换到宽屏虚拟键盘。增加的宽度可以显示更大的按键,让打字更为容易。横向键盘在两个系统上都需要软件的支持。事实上,有些Android程序对虚拟键盘很不友好,弹出虚拟键盘时表现很奇怪。这可能是因为它们本为G1这个有物理键盘的手机而设计。但我估计这些程序最终都会提供升级,包容虚拟键盘。
多点触摸
iPhone通过两种途径使用多点触摸支持虚拟键盘:
- 使用组合键。比如你可以在按住Shift的同时按h键输入大写的H,而同样的操作在Android上只能先按Shift,松开后再按h;
- 双拇指同时输入而不丢字。很快地用左手输入t,右手输入o,iPhone上会打出to,而Android上会丢一个字母。
Android目前仅有HTC Hero支持多点触摸。
总结
虚拟键盘的成败取决于细节。不是单个,而是所有这些特性让iPhone在虚拟键盘上胜过Android。无数小变化带来真正的巨变。Apple很显然是花了大把时间处理好每个细节(呃,除了那个Ducking字典),而Google目前在这方面是只求拥有,不求与iPhone比肩。
不过我毫不怀疑Android的虚拟键盘将在未来得到提升,并期待着他们的表现。