Facebook在2011年初宣示要以HTML5整合所有的平台,当时的理由是Facebook必须维护七种版本,如果全部的平台都使用HTML5技术就能降低维护的版本。但,这次改采iOS原生模式,等于是放弃了这种作法,而且媒体也都报导,Facebook后续也会对Android等平台做原生模式的App。
所以, Facebook 证明HTML5 是比较不好的技术吗?
不一定。
若果是为了让大家可以很方便的看文章,我还是会建议采HTML5 技术。原因很简单,只要把行动版网页卡入App 就完成,并且可以同时在各行动装置平台推出。而且,如果有必要,随时还可以在网站后台用HTML5 技术,进行改版或加入先前网页所没有的功能,不需要重新发布App 更新。
缺点呢?这个App 跟使用者把科技报橘连结存在浏览器中很接近,浏览器能怎么用,这个App 也只能那样用。事实上,如果你用Android 内建的浏览器开启Facebook ,有时候跑的比独立App 还顺畅,功能也大致相同。
但如果你是要做3D 动作游戏,我就不会建议您用HTML5 ;没错,还是可以用OpenGL 等HTML5 技术做出3D 游戏,但画面绘制速度可能会让使用者抓狂。
为什么会有这些速度差异呢?在于翻译!
原生App 是直接使用该移动操作系统内的功能,而HTML5 则是多一层翻译。
你可以把HTML5 写成的App 看成是模拟器中的程式,这个程式的一举一动必须透过模拟器(浏览器)翻译成作业系统的功能,才能呈现结果,但原生软体可以直接使用作业系统的资源。同样的道理,Java、Flash 这两种技术也是类似,所有的指令都必须经过翻译才能跨平台执行,导致执行效率不如原生软体。
那Facebook 为何不推出Windows 版或OS X 版的应用程式来提升使用者体验呢?其实也可以,问题在于有没有必要。
例如DropBox 可以只用网页来执行,但各平台装上专用软体或App,DropBox 的威力马上加强百倍;但Facebook 必须考虑到,在电脑平台发行独立应用程式,能增加什么功能是网页做不到的呢?如果没有,反正电脑网页执行效率不低,大家也都习惯整个介面,那还不如乖乖待在浏览器内。
从上面的分析看来,越是接近网页模式的内容,越是适合使用HTML5 来制作,而需要大量互动、3D影像、使用到硬体特色的内容,似乎应该使用原生模式来开发。
但Facebook却给我们一个反例。
Facebook 是网站,理论上本质就适用HTML5,但使用原生模式写出来的App硬是比HTML5 技术的快一倍。
为什么?
第一个理由当然就是我们举例的翻译问题,多了一层指令转换,因此在资料读取或显示图片等方面的速度比较慢。
第二个理由据说是Facebook 先前所写的iOS App,并没有做好最佳化,因此没有善用iOS 的硬体加速功能;我看过这样的报导,但我怀疑这个说法,因为理论上依照HTML5来写,应该就可以如浏览器般取得硬体加速的协助。
第三个理由是,可以作弊。如同部分浏览器可以预估使用者想看的内容,然后提早撷取一样,Facebook App 也可能预先抓取你比较会有兴趣的内容,因此当使用者点击之后,会感觉速度加快,而且有些视觉效果可以让使用者觉得等待时间没有很久。
所以,如果我要开发一个App,该怎么选择这些技术?
我想到一个老笑话,老板应征女秘书,应征的三个人各有专长,但最后这些专长都不是决定人选的理由,老板挑胸部最大的那个成为他的秘书。同样的道理,不管这些技术哪种适合,你会先挑你熟悉的技术来使用,除非开工前你就清楚这个技术无法达到你要的功能。
我相信Facebook 先前选择使用HTML5 也是这个原因,毕竟他们就是靠网页起家的公司,HTML5 搞不好是他们公司内部的官方语言,等到Facebook 发现这个技术无法完全满足需求时,才开始寻求其他的技术解决。
日期:2012年11月27日
标签: 广州网站设计公司 、 广州网站设计 、 广州网站建设公司 、 广州网站建设 、 广州网站制作公司 、 广州网站制作 、 高端网站设计 、 高端网站建设 、 广州高端网站设计 、 广州高端网站建设