这个结论曾经在调研Apache Cordova时就给出过,个人不认为HTML5会取代Native App成为移动平台的主流。
移动应用形态的可能变化
在探讨应用具体实现技术是HTML5还是Native之前,需要判定在可预见的未来,移动应用在产品形态上会发生怎样的变化。不同形态下,不同技术的优缺点是不一样的。
保持当前APP模式
当前主流移动平台(iOS、Android、WP)上的移动应用均是通过应用商店进行分发,用户从应用商店下载应用到本地。
轻应用模式(WEB APP)
个人理解的轻应用是以浏览器为入口,或是其它一些大流量平台为入口。可以在这些平台中直接运行而无需用户下载安装的形态。比如百度的轻应用、微信公众号形态存在的应用。
在不同方式下,HTML5会起到完全不同的作用。显而易见,如果未来移动端的应用都成为了WEB APP,那HTML5自然就能成功上位。那这两种方式,哪一种会是现实的选择?
为什么传统APP依然会是主流
个人判断,在未来三五年内,传统APP依然会是主流。
移动端的流量入口不会发生变迁
最主要的一点在于,在近期看不到移动端流量入口会发生什么大变化。在PC上,导航站、搜索引擎是最大的流量入口。在移动端,几年下来已经充分验证了PC上那一套没有走通。
推各种形态的轻应用最用力的无外乎各种流量巨头,比如移动端的百度、微信、以及野心增长的应用商店。在用力了一段时间之后,确实已经有了不少轻应用,微信上也能看到各种公众号的成长。
但自己还是相信这个判断,因为在那些成功的轻应用之后,大都还存在着一个独立应用。
原生应用的无限可能与轻应用的平台限制
原生应用的优点在哪?最简单的一个答案就是原生应用能充分利用手机的各项特性。当前的各种轻应用会受到很多局限,很多时候只能实现比较简单的功能。
体验,还是体验
最终原生应用、HTML5应用会产生体验上的大不同。在一个充分竞争的市场上,如果你的产品的体验比不上竞争对手的产品,这不会是大问题吗?
传统APP模式下HTML5的可能使用方式
直接使用WebView打包轻应用
这是个懒方法,感觉知乎最早的Android版本可能是采用这种方式。这个方法最多只能当作一个临时解决方案,实际中并不推荐。
使用跨平台框架进行开发
比如采用Apache Cordova。这种方式的效果比上一种好,但开发成本相比较更高。
与原生APP进行融合,作为应用的一部分存在
比如应用的某一些功能采用HTML5来实现,但应用主体还是采用原生应用的开发方式。
HTML5、原生框架融合才是未来
HTML5作为原生应用的一部分出现,符合当前以及可预见的未来下应用的使用场景。
HTML5形式的优势并不在于跨平台,更重要的是其内容可以快速让用户看到,无须经历传统的下载安装升级步骤。将应用内部分易变的内容用HTML来实现,如具有时效性的活动类页面,可以有效的利用HTML5的优势,且不会对应用体验产生比较大的影响。
总结
HTML5不会取代原生应用开发,在可预见的未来它会作为原生应用的补充而出现。这个结论的理由很简单,
- 移动端的流量入口不会发生大的变化
- HTML5无法提供原生应用的使用体验
什么时候HTML5能取代原生应用?等到HTML5的应用能够提供接近原生应用体验的时候,虽然移动平台的性能在不断提升,HTML5应用目前的体验比之两三年强好上太多,但原生应用的进步更快。想想Apple、Google每年能从App Store、Google Play上获取多少营收就能知道这些大厂在保持现有模式上的动力。