全部应用都应该以Web应用的形式存在,这种观点虽然过于天真但却拥有广泛的影响力;不过事实证明,我们需要以不同诉求为前提做出合理选择——毕竟原生与Web应用各擅胜场。
不知道大家是否还记得几年前曾经出现过的一大热门议题,即应用到底应该以原生方式面向特定系统平台还是通过单一Web应用形式实现出色的通用性。这个嘛,原生应用最终在竞争当中胜出——抱歉啦,对方辩友!我个人也乐于接受这样的结果,不过必须承认,Web应用虽然未能成为惟一主流、但仍然值得大家在需要时加以选择。
关于Web应用更优的愚蠢观点
支持Web应用的意见往往认为这类方案能够通过单一应用确保其一致性与通用访问能力,且能够显著简化开发工作的难度。这种说法在某种程度上是正确的,但网络浏览器之间的巨大差异却使其很难真正成为现实——特别是在微软浏览器之上——这意味着Web应用可能并不像大家想象中那么通用。
哦,另外Web应用的功能往往比较孱弱,而且一旦失去了互联网连接它们就会完全陷入瘫痪。相比之下,一部分原生应用能够使用来自互联网的信息,例如航班应用或者导航应用,但大多数通常能在不具备网络连接时仍然正常起效。
这并不是说原生应用总是要优于Web应用。Adobe Analytics应用就完全无法在平板设备或者智能手机上运行,但其Web应用版本则不会受到这类限制。JetBlue的Web应用在查看航班信息时甚至比原生应用更为强大——不过原生版本能够记录用户的细节信息,甚至可以在离线模式下继续起效。
而且很多移动银行应用——甚至在平板设备上——都无法提供与其Web应用版本相比肩的功能丰富性水平。这实在太蠢了,对吧?
而来自Web应用支持者的反对意见主要集中在各类极为糟糕的原生产品身上,例如福特公司的Microsoft Sync作为车载信息娱乐系统实在令人抓狂——这其实有点极端,类似由于某家糕点店的东西不好吃而对甜食加以彻底否定。
这些差劲的原生应用反映出开发人员与UI设计师根本未能实现应有的设计与执行效果,但这一些并不是原生应用自身的概念性原罪。事实上,也有很多Web应用在部分或者全部设备上运行效果捉急(没错,说的就是Ariett Xpense与Google Apps),但这明显并不能证明Web应用这一概念根本不应该存在。
原生应用的统治疆域
那么原生应用的优势怎样以及在何时才能体现出来?大家在解决这个问题时需要参考几项基本属性,且同时从开发者与用户的角度出发:
信息需要具备持久性。 这意味着在下一次同步或者下载之前,全部既有信息要一直被保留在设备当中,直到确定可以将其清除。尽管互联网连接如今已经随处可得,但其可用性与稳定性仍然会受到诸多限制。
另外,不断刷新查询结果会产生大量流量并占用带宽,这就正是移动连接与桌面连接越来越多地消耗网络资源的根本原因所在(这让家庭宽带服务供应商们面临着沉重负担)。
举例来说,我希望自己的登机牌信息能够以本地方式保存在自己的智能手表或者智能手机当中,而不是每次要使用时都需要通过网络连接加以实现。正是出于这一考虑,谷歌公司才决定将其语音智能识别与扩展地图数据以原生方式内置于Android系统当中,而非只提供纯在线模式(听见了没,苹果?)。
原生能力更具实用性甚至必要性。我们的计算机与移动设备在功能方面远非一款小小的浏览器所能应对。无论是其内置摄像头、麦克风、移动支付验证机制、帮助应用访问、手势操作还是通知信息,大家都需要以原生方式与之对接。而且尽管这里提到的大部分原生功能都立足于移动平台,不过这一情况在桌面设备端也同样适用。
让如此强大且极具优势的本地处理器及存储资源处于闲置,简直是种可耻的浪费!
通知机制则是另一个简单但却有力的实例。举例来说,如果大家使用过Slack,就会意识到其在OS X、Windows、Android、iOS、Windows Phone以及Linux上所能提供的强大原生通知功能优势,这意味着用户能够随时获取到对话内容——而不像Web应用那么迟缓而滞后。而在Windows与OS X平台上缺少原生版本则成为我和我的同事们批评Yammer的主要理由——实践证明,当重要消息出现时我们在桌面环境下总是得不到Web应用的及时提醒。
微软Office则是另一个有趣的例子。其Web应用版本非常出色,而且可以说是富互联网时代下的标志性产物。不过举例来讲,大家无法在这里找到注释或者自动语法纠正功能——二者在原生应用版本中显然一直存在,另外我们也无法让自己的演示文稿在其它设备上播放。
Web应用的舒适区
尽管原生应用往往是默认条件下的理想选择,不过Web应用也仍然拥有自己的合适施展空间。
大家的平板设备或者计算机发生故障、丢失或者电力不足,那么能够使用其他同事的设备继续工作就成了最理想的处理方式——在这种情况下,Web应用自带的备份机制就成了压倒原生应用的巨大优势。
Web应用的另一大施展平台则在于偶发性服务,也就是说用户可能在第一时间并不具备或者有能力获取到相关应用。在这方面,最典型的例子就是政府事务网站,比如营业执照交费或者汽车检验证续期。没人希望在自己的设备上安装大量几乎很少使用的应用程序。在这种情况下,Web应用凭借着搜索与书签功能成为此类服务的最佳实现途径。
不过,为了能够让Web服务能够在Windows PC之外同样顺利运行在移动设备以及Mac之上,政府机关与电信运营商必须对其加以特别关注——但实际上二者做得并不好。令我感到震惊的是,政府与运营商的网站普遍要求访问设备拥有Flash或者IE浏览器(这就直接将移动设备以及Mac、Linux以及Chrome OS用户排除在外),使用特定的Java版本(意味着Mac无法运行此类服务)或者完全没有考虑到小尺寸屏幕的交互设计需要。开发原生应用的过程会始终将这些问题纳入考量范围,而非直接将其抛在一边。因此,从这个角度讲,原生应用较Web应用仍然极具比较优势。
原文标题:Native apps crushed mobile Web apps -- and that's a good thing
【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】