2015年中,HTML5中国产业联盟举行扩大会议。这个联盟其实2013年就成立了,无奈当时整个产业太冷。随着基础环境的变化,越来越多的公司开始重视HTML5,并加入HTML5中国产业联盟一起推动产业发展。目前联盟的会员们已经形成从开发、测试、发行、培训、外包、融资、媒介宣传的一条龙HTML5产业服务能力。这也让中国的HTML5开发者有更强的信心和更方便的服务。
2015年中,Firefox副总裁、Firefox OS的核心人物宫力博士,宣布辞职创业做H5OS,并获得紫光国际1亿美金的巨额投资。这笔巨款着实令人吃惊,且不说上半年疯狂股市是否引发泡沫,但H5OS指向的是紫光国际看好的中国政府国产化OS市场。自从斯诺登事件后,中国政府就反复强调国产化。在政府信息化领域围绕着很多IT公司,都试图从中寻找到新机会。
关于OS的国产化,有些人从Linux入手,另有一些人,从HTML5入手。鉴于Google和中国政府的关系,Chrome OS是没人敢碰的,于是不少人在接触Firefox OS,宫力博士的创业也在情理之中。
此外,华为也推出了国产安全手机,从芯片到系统都是国产的。
但手机上的OS比PC上的OS难做。做一个操作系统本就很难,操作系统出来后要建生态更难。PC上大多数业务本就是基于Web的,但手机上目前大多数优质App都是Native的,缺少优质的应用是目前所有做手机HTML5 OS的尴尬。如果希望在HTML5的OS上有足够好的体验,必然涉及扩展HTML5,但如果各家定义自己的扩展规范,让开发者为每家单独开发,这个事基本就无法推动了。产业各方合力,把扩展标准统一,才可能有机会。
流应用,HTML5产业又一大亮点2015年在HTML5产业里最大的亮点是360和DCloud公司推出的流应用,它对于HTML5缺陷的弥补和优势的发挥,可以说做得淋漓尽致。
在360手机助手里搜索“大众点评外卖”,看到的按钮不是“下载”,而是“秒开”。
流应用?这是轻应用换个概念炒冷饭吗?
当然不是,点击秒开后并不是在线打开一个网页,仍然是安装一个客户端App,仍然如原生App般强大和流畅。只不过这个客户端App是JS代码,并像流媒体一样流式发行、边用边下,实现了5秒内完成客户端App的下载、安装、启动。App二次使用仍然在桌面点图标启动,应用使用体验也与传统原生App没有区别。
一定要注意,对于用户而言,使用App的功能体验与之前的原生方式并没有区别,但是获取App却秒开了。
读者肯定会问,怎么实现的?
这个新概念包括的新技术有点多,本文不负责科普所有实现过程。大概讲讲HTML5为何能达到原生的功能和体验。
流应用使用了一种强化的JS引擎(HTML5+),这种引擎能让JS调用操作系统的40万API,并将之前HTML5体验不佳的交互都改进为原生体验。
不同于React Native的反HTML5方案,HTML5+采取的方案是强化HTML5。
HTML5+兼容HTML5,并扩充40万原生API。对于DOM和CSS3动画效果不佳的部分场景,使用原生动画补足,比如窗体切换、下拉刷新的动态交互效果,不采用CSS3动画,而是通过JS调用了原生view动画。
相比React Native,强化HTML5的方案对开发商更友好,开发商只需把现有的HTML5版本做简单强化改造即可,而不是重新写一套No DOM的代码。
HTML5定稿后一年的业内大事基本整理完毕,接下来我想深入分析流应用这个里程碑产品会给产业带来什么变化。
HTML5出现这几年,在PC上已经广为应用,但在手机上,始终是备胎。
流应用的出现颠覆了大众对HTML5 的认知。以往提到HTML5,大多数人都会认为HTML5有5个问题:
HTML5的性能不行,不如原生;
HTML5的api不够,很多功能实现不了;
HTML5没法离线运行,断网就不能用了,即使有离线缓存,三方软件清理垃圾后也不能用了;
HTML5只能在浏览器里用,没法直接在桌面启动;
通过HTML5强化引擎(如PhoneGap/Cordova)开发跨平台App,那是小公司为了省钱做的事,大公司还是要用原生。
现在,这五个常规认知被终结了。
好吧,听起来大家真的需要重新认识HTML5了。
基于强化引擎运行的HTML5,功能、性能、离线运行、桌面启动,均和原生一样了(至少用户感觉不到差别)。
以大众点评外卖流应用为例,它的窗体切换pop-in动画、流畅的下拉刷新,均是原生标准,还有一个流应用叫“36Kr资讯”,还可以手机进入飞行模式后再次从桌面启动该App,一样可以用而不会出现白屏或404。
为了消除大家对HTML5的五个错误认知,特地录了36Kr流应用的操作视频,演示在飞行模式和手机清理垃圾后仍然可正常使用,让大家眼见为实:
当HTML5这五个问题被消除后,这个世界就变了,但还变的不够,因为其实HTML5还有很多强于原生的地方可以发掘。
我在去年HTML5定稿时写的文章提到HTML5有5个原生也比不了的优势:
跨平台
快速迭代
开源生态发达
更容易推广
天生开放非孤岛,可方便互联
这五个技术优势,都如何应用呢?
HTML5的跨平台,不是常规意义上的跨Android和iOS平台。对于很多应用开发商而言,原来至少有3拨团队,分别负责Android、iOS、微信公众号的开发。
能不能一套代码,跨多个平台,且在各个平台都有最佳体验呢?