HTML5 技术在移动领域的发展未达预期

  • 崔康

2012 年 12 月 10 日

话题:FacebookHTML5语言 & 开发架构前端

资深移动开发专家 Ben Savage 最近撰文表示,HTML5 在 2012 年的发展程度远没达到预期,并分析了其中的原因,主要包括跨平台的 HTML5 技术障碍、消费者的下载习惯、移动设备的适配问题等。

Ben Savage 在今年年初的时候曾经对 HTML5 的发展做出了乐观的预测,包括:

2012 年,HTML 5 将会增加对更多实用 API 的支持,让网站彼此连接。例如,Facebook 上运行在 iframe 标签中的 Zynga 游戏,通过使用新的postMessage API,将可以直接在 Facebook 框架内进行通信。而在 HTML 5 之前,窗口内的通信必须依赖远程服务器,或许借助让人爱恨交加的黑客。除 API 外,HTML 5 还将新增跨域资源共享 (Cross-Origin Resource Sharing,即 CORS),这将有助于实现不同网站之间的信息共享。例如,通过 CORS,初创企业可以为用户提供照片编辑服务,从 Facebook 上下载照片、编辑修改、重新上传。由于 HTML 5 中许多新的语义信息,开发从 web 页面中提取信息的 web 工具将变得十分容易。我们将看到越来越多的糅合(mashup)服务,以及越来越好的浏览器模式(如阅读器和翻译工具)。

那些热衷于把来自 iOS 设备庞大流量货币化的网站站主们将诉诸于 HTML 5 广告。同时,越来越多的初创企业也将进军这个新兴市场,解决必将会面对的安全、创作工具等问题。既然 HTML 5 具备了 Flash 广告几乎所有的效果,以及部分 Flash 广告没有的效果,HTML 5 广告取代 Flash 广告是迟早的事。

2012 年,可能会经常看到人们在自己的移动设备上玩各种简单的 HTML 5 游戏,如 Zynga Poker、Words with Friends 和 Mafia Wars 等,这些游戏即可在目的网站,也可在本地应用上运行。不过,移动设备上成功的 HTML 5 游戏将仅限于以下几种:菜单类、纸牌类、棋盘类、回合制多人游戏,以及头像定制游戏,而像 Zynga “Ville”这种复杂、视觉密集型的游戏在 2012 年的发展空间可能不是很大。

但是现实的发展并没有达到 Ben Savage 的预期,在年末的总结中,他列举了 HTML5 发展在移动领域发展的五个问题

跨平台 HTML5 开发并未普及

桌面端和移动端 HTML5 之间的分裂还是巨大的,这两者之间没有形成一个统一的开发标准,主要原因就在于以下的这三点差异:

  1. 电脑键盘与手机、平板键盘之间的差异;
  2. 两个平台设备的屏幕大小;
  3. 鼠标与触摸屏操作的差异。

最理想的情况就是针对特定平台进行产品开发,这样开发者就能对应用的外观、感觉和功能等进行相应的个性化设置,从用户体验角度来说这也是极其重要的。然而很多人对 HTML5 的预期就是 HTML5 应用可以实现跨平台访问,比如说从桌面端访问移动 HTML5 应用。不过从现实情况来看,用户也只能选择一个应用能更好的运行的平台,因为当前的跨平台 HTML5 并不完善。 通常开发者的观念就是说到移动端的时候,HTML5 应用就必须是为移动用户开发的。没有什么比开发者们不愿意将时间多花在跨平台 HTML5 应用的开发上更让人沮丧了,而到最后你才发现其实你的用户是个多平台设备用户,在某一个平台上不能完美体验你的 HTML5 应用的时候,用户就有可能离你远去。

人们更习惯于通过应用商店下载应用

为移动设备创建一个带桌面图标的 HTML5 浏览器链接非常容易,但是想改变人们对应用的传统观念还是比较困难。人们往往习惯于被告知去下载某一个应用,用户本能的反应就是通过应用商店去搜索应用,而占主导地位的苹果和谷歌的应用商店迄今为止还没上线过一款 HTML5 站点应用。Facebook 创建的通用商店“universal store”提供了原生应用和 HTML5 网页应用供用户选择,在很多人看来这将会成为 Facebook 的商店战胜苹果和谷歌的应用商店的一大有力举措。为了说服更多的开发者投身 HTML5 应用,Facebook 甚至在W3C联盟下建立了一个开发者网络,但是到目前为止,它的这一举措还没有显现出足够的吸引力。

混合应用不能依赖移动浏览器

在我的想法中至少要有一款主流主机游戏是使用WebGL技术开发或者再版,游戏巨头 EA 就曾发布了 HTML5 版命令与征服泰伯利亚联盟(Command & Conquer Tiberium Alliances),然而最大的问题所在就是作为移动浏览器中的佼佼者 Chrome 和 Safari 都并没有完全支持 HTML5 技术的意向,举个例子来说,主流移动浏览器 Chrome 和 Safari 等就不支持 WebGL 技术,而这是 HTML5 3D 游戏开发的核心技术所在。

跨平台 HTML5 应用的兼容性是一大问题,但是移动浏览器的速度也是制约 HTML5 移动应用发展的因素之一。有报告曾显示 HTML5 在移动浏览器中的访问速度比起桌面端 HTML5 应用的速度要慢上十到七百倍左右,事实研究证明移动浏览器的 HTML5 应用的平均速度要比桌面端低 889 倍。而当前的主流 HTML5 应用大都是图形化应用,受移动网络网速的影响,移动端 HTML5 的用户体验是比较糟糕的。

不同移动设备间的适配问题

在 HTML5 发展的过程中,那些已经建立了一个网站的开发者们就曾经历过很让人头疼的浏览器兼容性和跨平台适配问题。举个例子来说,Gamzee 的一位工程师 Sean Soria 就曾描述过他们在为 Facebook 的 HTML5 博客开发 Skyscraper City 应用的时候所面临的问题:在编写代码的时候他在文档对象模型(DOM)中使用了一个伪 3D 转换 CSS 代码,它能触发大多数移动设备的硬件加速能力,而且这种方法比使用 Canvas 元素表现要好很多,非常不错的一种方法,但是问题就是 Android 手机并不支持。这样的问题还有很多,往往不同设备之间 HTML5 应用所面临的问题和解决方法都不一定是相同的。

基于网页的 WebApp 短期内将遇到发展瓶颈。因为标准化问题和终端设备功能的支持程度,很难在短时间内找到确切的解决方案。

HTML5 还不够强大

从我所已经看到的来说, 炒作已经导致许多人高估了有多少开发人员喜欢使用 JavaScript 这一现状,JavaScript 用于跨平台开发的强大是毋庸置疑的,但是这样就能证明 JavaScript 是 HTML5 跨平台开发的替代品么?显然不是这样。对于一些较为复杂的应用特别是游戏来说,面向对象法和更强大的手写代码往往更受开发者们的欢迎。

所以从上述几点来看,HTML5 在这即将过去的一年的发展远远没达到人们的预期。HTML5 可以说是成为了以 Facebook 为代表的新兴移动互联网一代被高估的替罪羊,如果 HTML5 能代表未来的话,那么它所代表的未来比起我们能想象到的还要远很多,不过现在谈这些还是有点为时尚早,当然这也不是说 HTML5 就没有春天,只是在短期之内还是很难实现的。

InfoQ 的读者对 HTML5 的发展有何见解?欢迎发表自己的看法。

FacebookHTML5语言 & 开发架构前端