自W3C于1999年发布HTML4后,Web世界快速发展,一片繁荣。人们一度认为HTML标准不需要升级了。一些致力于发展Web App的公司另行成立了WHATWG组织,直到2007年,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独家的JavaScript加速引擎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 独家的 Javascript 加速引擎 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中实现。