自从HTML4技术的出现之后,Web世界迅速迎来一片盛世。大家在那个阶段认为现有的HTML标准已经可以满足使用。然而那些看中Web App未来发展的公司,又成立了一个WHATWG的组织,一直到八年后W3C从WHATWG 那里接手了有关的工作,重新启程HTML5的发展历程。
纵观HTML5的发展,也是一波三折,有用户的需求在推动,有技术开发者的需求在推动,更有巨大的商业利益在推动。过去这些年,HTML5 颠覆了 PC互联网的格局,微信朋友圈里的一个神经病猫小游戏,打开了人们对移动互联网的各种幻想,优化了移动互联网的体验,接下来,移动互联网将产生一个全新的入口,而由超级App+HTML5主导的web app将颠覆原生App移动互联世界。
传统浏览器+HTML5 组合的灰色时期
在 HTML5 标准的升级过程中,苹果和Google同时也看到了浏览器市场重新洗牌的机会,他们一方面参与HTML5的规范,一边在浏览器产品上发力。Apple首先开始大力发展Safari,建立WebKit开源项目,Mac、iOS、Windows多平台齐发力;Google起初是赞助Mozilla开发 Firefox,后来自己开发了v8引擎,合并WebKit,于2008年正式推出Chrome。“IE 的私有规范+Flash不是标准,我们才是标准”这样的口号在新一代浏览器大战中打响。
随着Chrome和Safari的高歌猛进,以及IE+Flash的衰落,HTML5告一段落,进入了下一个时代——移动互联网。HTML5 的跨平台优势在移动互联网时代被进一步凸显。HTML5是唯一一个通吃PC、Mac、iPhone、iPad、Android、Windows Phone等主流平台的跨平台语言。Java 和 Flash 都曾梦想这个位置,但梦断于iOS。此时人们纷纷开始研究基于HTML5开发跨平台手机应用。很多人当时认为,原生应用只是过渡,就像当年从C/S结构转变为B/S结构一样。而且学习Objective-C和Java很费劲,既然会网页开发,为何不试试HTML5。
W3C此时成立了Device API工作组,为HTML5扩展了Camera、GPS等手机特有的API,然而麻烦的是,移动互联网初期的迭代太快了,手机OS在不停的扩展硬件API,陀螺仪、距离感应器、气压计……每年手机OS都有大版本更新。HTML5没有跟上移动互联网初期的快速迭代。
PhoneGap的出现,给开发者打开了一扇窗。很多人期待PhoneGap不停扩展 API,来补充浏览器的不足。Adobe看到PhoneGap仿佛看到了重振江湖地位的希望,但在Adobe收购PhoneGap后,又发现这个东西可商用性不足,而且开源使得 Adobe 无法像 Flash 那样获取商业利益,于是就把PhoneGap 捐给了Apache,改名为Cordova。
因为各种原因,Cordova的定位最终没有成为浏览器的强化,而走向了混合式开发。基于当时的背景,他们认为原生是不可替代的,“原生+HTML5”的混合模式更有意义。
这时Facebook加入了W3C,牵头成立了Mobile Web工作组。Facebook是混 Web 圈的,并且在手机OS上没有自己的领地,他不喜欢被苹果和Google掌控的原生应用生态系统。Mobile Web这个工作组的重要目标就是让HTML5开发的网页应用达到原生应用的体验。然而,事与愿违,结果是努力了却失败了。2012 年,Facebook放弃了HTML5的新闻充斥了全世界的IT媒体,HTML5瞬间被打入冷宫。
而在HTML5定稿之前,国内绝大多数浏览器也已经支持HTML5,包括UC在内的很多手机浏览器已经迫不及待发展Web App,用于抵消原生App所吞噬的流量。在HTML5之前Web App曾经试图和原生App争夺手机桌面,不过限于Web App天生的缺陷—卡顿、无法Push等,其体验流畅程度远远落后于原生App,导致目前手机桌面依然是原生App的天下。
HTML5定稿WebApp迅速崛起了
Facebook为何放弃HTML5?这一事件,甚至让别有用心的人经常拿来唱衰 HTML5以及Web App。
核心原因是当时基于HTML5真的做不出好的移动App。对比Twitter等竞争对手的原生App,Facebook的HTML5版本实在无法让用户满意。比如 Push 功能,到现在HTML5的推送和原生的推送体验差距依然巨大,更不用说HTML5应用的页面切换白屏、下拉刷新/侧滑菜单不流畅等众多问题。看着原生工程师轻松实现摇一摇、二维码、语音输入、分享到朋友圈等功能,更是让HTML5工程师感觉自己站错了队。
即使Facebook不喜欢被控制,也不能拿被用户抛弃来冒险。而且Facebook 并没有掌握关键点—手机浏览器内核。如果浏览器不跟上,徒然定一堆标准草案落不了地。Facebook也好,PhoneGap也好,想在移动互联网初期就分一杯羹是分不到的,但坚持下来,机会往往会出现。
终于,在2014年10月底,W3C宣布HTML5正式定稿。这个时间,不晚不早,硬件性能更强、手机OS迭代速度下降。HTML5的定稿的预示着新时代的起航。
对于移动设备来说,硬件性能的提升移动程度上抹平了HTML的不足,同时补充了流媒体和游戏能力。行业支持上从最新的Android5.0 开始,Webview可以通过Google Play Store 实时更新,和Chrome的升级保持一致,用户就可以不刷机享受到最新的浏览器引擎;iOS 8 发布后,苹果还是很识趣地取消了三方程序调用Nitro的限制,现在任意浏览器或应用调用iOS的UIWebview都可以利用Nitro加速。
Google在2013年底发布的Android 4.4,内置的Webview不再是蹩脚的Android WebKit浏览器,而是Chromium,性能大幅提升。从最新的Android 5.0 开始,Webview可以通过Google Play Store实时更新,和 Chrome的升级保持一致,用户就可以不刷机享受到最新的浏览器引擎;再看Apple方面,2012年iPhone 5发布后,HTML5在iOS上的表现已令人满意,Safari独家的Java加速引擎Nitro不再那么重要,不过在iOS 8发布后,苹果还是很识趣地取消了三方程序调用Nitro的限制,现在任意浏览器或应用调用iOS的UIWebview都可以利用Nitro加速,这样在前端使用JS做大型运算也成为可能。
两大手机操作系统霸主和浏览器巨头的态度发生了变化,使得HTML5在手机上的发展不再受限,而且这个变化不可逆只能继续向前,这种变化势必会产生深远的影响。
全新的互联网入口超级App+Web App的时代来临
首先从硬件方面来说,随着Apple iPhone6的发布,硬件性能的提升,已经抹平了HTML5的性能劣势。Apple和Google的策略也在发生变化,在2013 年底Google发布的Android 4.4内置的Webview已经不再是Android Webkit 了,而是chromium。2012年的iPhone5上面的HTML5表现已经令人满意,Safari独家的Java加速引擎Nitro已经不再那么重要。而且在iOS8.0发布后,Apple还取消了第三方程序调用Nitro的限制,现在任意浏览器或应用调用iOS的UIWebview都可以利用Nitro加速。两大移动巨头有意或无意的改变,让HTML5再说手机平台上面的发展不再受限。
而对于开发者而言,开发者为什么不愿意开发WP版本,很多时候是因为工作量太大,除了版本适配,分辨率调整等,一旦有新版本推出,在原生App中开发者不得不等待多达两周时间去接受审核。另外内容维护上也很麻烦,这也是为什么有些媒体开始放弃原生App鼓励读者使用Web App的原因。除此之外,跨平台在多屏时代给开发者非常痛苦的体验,人们都期待当年Java的一次编译处处运行的理想情况。HTML5目前正在扮演一个开发者救星的角色。
这也是为什么这两年诞生了很多基于HTML5的开源技术框架,并且非常受用户欢迎的原因。云适配是一家只有两年的小公司,他们主要基于HTML5在PC网站植入一行JS代码就能实现PC网站的移动适配,而其在2014年推出的中国首个开源HTML5跨屏前端框架Amaze UI推出仅仅3个月就收到了近10 万的下载,帮助众多的中小企业成功建立了自己的Web App,在全球最大的社交编程及代码托管网站——GitHub 上,获得近 2000 用户的星级标注,成为中国最受欢的HTML5开源框架。而这一切,都意味着HTML5带来的移动互联网的风向转变。
你手机里装了多少App,最常用的有哪些?
可能最多的回答是,我用微信、QQ,或者其他浏览器等等所谓的超级App。
对于其他更多的原生App,要先进入App Store,每次下载都要输入密码,而安卓则不得不经历一系列的权限确认、安装等,App 下载安装所需要的用户成本一定程度上成为大家使用App的障碍。但是在Web App中这一切都不是问题,它极大的降低了用户使用成本,用户眼睛看到一个兴趣点,点击后,就应该立即开始满足用户需求。比如流媒体可以立即看,页游可以立即玩。
而HTML5应用导流也非常容易,超级App(如微信朋友圈)、搜索引擎、应用市场、浏览器,到处都是基于HTML5的Web App的流量入口。而原生App的流量入口只有应用市场。
结语:
到目前为止我们可以看出来的是,外各大浏览器都在推广Web App,也作出了显而易见的一些效果。但是在近期来看原生App依然会占据应用市场的主要领地,原生App本身的门槛和不足是我们现在没办法解决的,未来的移动互联网黄金时代如何实现?HTML5或许就起航互联网的新时代。