提醒:本文发表于 2015-07-07 23:50:16,文中所描述的信息可能已发生改变,请仅作参考使用。

在往下看之前,可以先阅读下面两篇文章预热:

2年前我曾发过一篇文章《移动Web单页应用开发实践——页面结构化》,这篇文章是讲解如何构建 Web单页应用(Single Page WebApp),积累的技术大多都是解决如何模拟原生应用的交互体验?的问题,当时满心欢喜,确定这就是移动Web开发的未来。

今天无意中阅读《Web与原生:我们得承认失败》,彻底激发了我内心隐藏许久的一团怒火,我想告诉所有的产品:WebApp根本就不是NativeApp,请不要再拿Native来与Web比较,臣妾做不到啊~~~

我们为什么会失败?

早在半年前(14年底)我就意识到在WebApp所面临的困境,正如《Web与原生:我们得承认失败》所说(此处省略一千字,大家看那篇文章就好了)。

做过移动Web开发的人,或多或少都有体会,在实现一些产品需求时,可能因为下面几点而无法实现:

  • 性能,由于web运行在浏览器(WebView)之下,在某些功能上性能远达不到预期目标。
  • 功能,由于浏览器的安全限制等因素,导致web先天缺陷,无法实现文件读写、摄像头调用在内的很多功能。
  • 兼容,由于浏览器实现差异,并限制web只能使用底层默认控件,导致浏览器之见的体验差异巨大。

也正是由于上面几点,导致WebApp无论是性能还是体验都远低于原生应用。

近些年HTML5高速成长,无论是标准制定还是浏览在器对标准的实现都是飞快,但是我们太轻敌,只关注到了自己的成长,而忽视了iOS、Android也在快速成长。

所以我总结了下面两点主要的失败原因:

  • 不是太快,而是太慢。我们需要浏览器更快的实现标准,需要更快的引擎,需要更快的渲染。
  • 不是太多,而是太少。我们需要更多的标准支持,需要更多浏览器实现标准,需要更多能调用的系统接口。

对于失败的总结

“失败”更准确的说应该是阶段性的失败,之所以把它定义为阶段性失败,是因为我相信Web的未来。在《Web与原生:我们得承认失败》里面说到一个观点:

“人们想不想把你的图标放在自己的主屏幕上?”

仔细想想这不就是“入口之争”么?回想13年百度19亿美元收购91助手,14年阿里以40多亿美元的代价收购UC。从这两次收购案例来看,91助手是原生应用入口,UC是浏览器web入口,收购价格UC超出91一倍多,阿里砸这么多钱给浏览器,这就说明浏览器在未来很长一段时间内将作为一个主要的入口存在。同时近几年微信的成长,也成为绝对不亚于任何一个浏览器的web入口。

从技术层面来说,无疑web是失败的,但是看未来,只要浏览器作为一个主要移动入口,把浏览器(WebView)和web作为一个共同体,那么web就会有发展空间。

在现阶段,我们不应当直接拿web与原生应用比较,更不能生搬原生应用的交互和实现,这是我们前端开发需要认识到的,更是产品人员需要认识到的。我们应当充分发挥web的长处,比如:快速上线迭代、高效传播,小步快跑,不和原生应用发生正面冲突,以己之长攻彼之短。

--EOF-- 最后更新时间:2015-07-08 09:29:16

本文链接:http://www.maxzhang.com/2015/07/读《Web与原生:我们得承认失败》有感/