基于HTML5的方案。该方案以PhoneGap/Cordova为代表。其基本思路是针对HTML5标准目前功能上的不足,补充定义了一套比较实用的API(比如硬件访问/系统交
互等),然后基于平台上自带的Web引擎(比如iOS的UIWebview等),通过扩展机制实现了这些API,在此基础上再提供一套应用打包部署系统。Intel的XDK也属
于此类方案。
将Native API映射封装成统一语言的API的方案。该方案以Titanium、Xamarin为代表,其中Titanium提供JavaScript API,Xamarin提供C# API。这样的好处是可
以较容易达到和Native API类似的能力,编程模型/方式也和原生应用相似。
有行业针对性的HTML5 API方案。比如Ludei的CocoonJS就是一个比较有意思的方案,它设计了一套专门针对2D/3D游戏开发的API(支持iOS和Android)。可以认
为它是HTML5图形操作的子集(Canvas +WebGL),再加上一些扩展的API比如硬件访问能力/广告/应用内购买/社交网络整合等,以实现一个完整的游戏引擎。
HTML5方案的特点
原生API映射的方案,如Titanium、Xamarin,其优点在于功能和性能与原生系统比较接近。但是,由于不同系统原生API设计上还是会有不少差异,API的映射还
是需要不少的权衡取舍。同时,由于这些API是这些厂商自定义的,谈不上什么标准,相应的开发资源(程序库/技术支持/社区等等)也相对有限。
而另一方面,标准化、开发资源的丰富则是HTML5方案最大的优点,同时第三方的HTML5框架工具比如PhoneGap/Cordova也极大促进了HTML5应用的发展,它们提供
了方便的跨平台应用打包/发布服务、实用的API、灵活的扩展机制、以及积累下来的丰富的第三方API实现。而上游的W3C一旦开始支持一些新的API,
PhoneGap/Cordova也可以很快沿用这些标准的API将相关能力开放出去。
HTML5方案的主要不足则在于功能和性能方面,这主要是因为HTML5应用的能力严重依赖于系统自带的Web引擎:iOS的UIWebview、Android的Webview等,此类组件
的HTML5能力相比Safari for iOS、Chrome for Android都要差一截。另外在Android平台上,由于系统碎片化比较严重,不同Android版本的Webview的HTML5能力
也有较大差异,导致相应的HTML5应用一致性难以保证。
好消息是,现在已经出现一些第三方的Web引擎以提供比系统默认的Webview更好的功能和性能,而PhoneGap/Cordova也正在改进架构以便引入这些更好的第三方
Web引擎。另外对于Tizen、Firefox OS这样本身就是HTML5 Runtime加上扩展API的系统而言,HTML5应用是一等公民,在功能拓展方面相比iOS、Android上会增强
不少。
App适宜用HTML5开发的产品
1、搜索产品
的确,由Android系统定义的移动互联网搜索生态,是将搜索框作为整个移动互联网的入口,这样最符合谷歌的利益,也必然使得WEB页面成为处理搜索需求的主要场景——难以想象,如果搜索引擎是一个原生app,而这个app控制了跨平台的移动设备上网入口,谷歌将会多么抓狂。
除此之外,由于HTML5技术本质上是增强了WEB页面在移动设备上的用户体验,并增强了WEB页面可以实现的功能和效果,所以搜索本身这一行为就适合HTML5。因为用户常常需要在不同的平台及界面上使用搜索引擎。手机、平板电脑、PC甚至是游戏机。逐一平台去推广客户端远不如把功能全部放在Web页面方便。
对于以获取资讯为目的的搜索行为,跨平台和碎片化是常态,使用客户端无法保证用户在每次搜索时用户体验的连贯性。在搜索产品中,客户端式的app对于用户反馈的偏好和历史数据也不能良好处理,所以对于内容和媒体型的搜索产品而言,未来必然是要全面HTML5化的。谷歌似乎已经开始了这方面的动作。谷歌的WEB在桌面上已经去掉了传统的导航栏。有用户反映这样会使得使用谷歌的部分功能更麻烦,但也有观点认为谷歌在尝试更新的技术,比如用手势来代替导航按钮。这是应用新一代Web技术的强烈信号。或许谷歌会给大家展示出HTML5更强大的可能性。
2、社交产品
对于社交媒体产品,中文环境中大家最熟悉的社交媒体大概是新浪微博。不过新浪微博似乎并没有对HTML5投入太多的兴趣——以至于其通过浏览器使用时只有一个极为简陋的WAP版。事实上微博等社交媒体是极为适合全面WEB化的。
事实上,如果新浪微博从一开始在移动端就是一个Web app,利用HTML5技术把所有的功能放在页面上实现,不仅能统一移动端和PC端的用户体验及数据,还能充分满足不同用户在自己终端上的个性化需求,为全体微博用户提供统一的服务。反过来也能使新浪以微博为平台,推出更多有针对性的服务和产品——它们可以是客户端式的原生app。
不仅仅是微博这种类Twitter产品。其他具备媒体属性的社区同样会面临这个问题。事实上,对于非垂直类、调性娱乐化、受众全民化的社交媒体产品,HTML5是一个比客户端app更好的选择。HTML5不仅仅能提供更炫的样式和功能,而且甚至会发展到落地为一个专属的浏览器,从社交媒体转变为社交搜索继而把握移动互联网的入口——嗯,Facebook正想这么干。
3、资讯新闻产品
这类产品在目前同样是客户端式app的大热门。但它们恰恰是最适合HTML5开发的产品之一。
与综合资讯相比,垂直类的资讯产品尤其适合Web化。HTML5不仅仅能如社交媒体一样给用户(读者)提供打通PC桌面与移动终端的阅读和交互体验,更重要的是,HTML5化的垂直资讯产品能够抢占整个垂直领域的信息入口。
想象一下这样一个场景:出现一个科技突发事件,各家垂直门户媒体都赶紧抢着把新闻发了,然后往自己的移动客户端上推送信息。结果一个装了七八个资讯 应用的用户在自己手机上把同一条信息读了七八遍——这时,他对这件事产生好奇心了,想要了解一下来龙去脉和相关评论,他应该怎么办呢?在手机上打开浏览 器,在百度新闻里查找;然后打开微博客户端,在微博中搜索关键字;最后还可能复制一些段子丢到微信群或者朋友圈中……整个过程下来,资讯客户端app的价值就被打了好几轮折扣了。
HTML5将会在垂直资讯媒体中引起革命。但似乎,大部分媒体还没有意识到风暴来临。
此外,对于综合资讯产品来说,HTML5也能够提供足够好的支持。之所以称综合资讯相对于垂直资讯产品对Web化的需求没那么重,是因为垂直资讯产品有赖于社交网络,并需要高强度的互动。但综合资讯更传统化,如同人们吃早饭时看报纸一样,许多内容的用户场景只仅仅是阅读而已。这使得综合资讯产品对其他应用的功能并不那么倚重,这样一来似乎无论是采用客户端式app还是WEB页面都可以达到一样的效果。
4、游戏产品
最后是依靠CPM广告获取收入的游戏,使用HTML5开发会更具竞争力。目前移动游戏通过内置购买和CPM广告获取收入已经成为比较成熟的两个路径。大部分的游戏开发商是两者并行。但基于游戏本身的属性和用户特点,不同游戏会有不同方向的侧重。事实上,如果在前期策划阶段就确定主要通过广告来获取收入,采用HTML5开发将赋予开发者更多的优势。
这是两个极端。虽然HTML5技术仍在完善中,包括直接在页面上实现支付的功能也是一个技术热门。但是如果主要是向玩家兜售道具和游戏币,客户端式的app是必不可少的。这不仅仅更加安全,而且适用于玩家玩“大作”的心态。很多复杂的数值搜集与调试也更匹配客户端的场景。
虽然移动互联网以及app开发仍然是目前的热门,且有激进观点认为Web将会因此衰亡。但HTML5技术的发展无疑赋予了Web更强大的生命力,在许多场景下,Web或许会颠覆目前的app市场格局。