HTML5能否取代Android和iOS应用?

标签: HTML5&CSS3 Android HTML5 iOS | 发表时间:2012-06-09 03:39 | 作者:胡不知
出处:http://www.csscoo.com
大量新生移动设备的兴起,改变了互联网的未来。在技术的发展上, HTML5会取代App应用吗?或者说能够在多大程度上取代呢?在HTML5规范中,已经加入了相机、磁力罗盘、GPS信息的支持。很多新兴浏览器也已经开始支持这些新特性。能否用一个统一的HTML5来替代 androidios并行开发的双重成本呢?以下译自Michael Mahemoff的一篇文章,详细分析了HTML5能否取代Android和iOS应用程序。

介绍

移动应用程序(App)和HTML5都是目前最火的技术,二者之间也有不少重叠之处。在移动设备浏览器里运行的html5的web页面,也可以重新打包成不同平台上运行的app。目前很多浏览器都有很好的跨平台支持,(译注:firefox居然可以在android中使用和windows下同样的浏览器内核),HTML5的web方案,对开发者来说更为方便。完成一次,即可多平台使用。但这确实可行吗?仍然有许多必要原因,使得开发者选择了app开发。很明显,很多人已经在这么做了。本文将详细分析两种方案的优劣。

功能丰富

正方:App里可以开发出更丰富的功能 我们把移动功能分成两类。程序本身和程序与系统的结合。比如android里,加入widget图标或者通知提醒之类的。App对这两者都没问题。不用多说,这是肯定的。 反方:APP是挺强,但Web也正在迎头跟进 确实很多原生app实现的功能是HTML5望尘莫及的。不管你的web做的再牛,如果停留在一个没有摄像头支持的沙盒中,很多场合还是玩不转。幸运的是,现在没有这样的沙盒限制了。如果你需要你的web照相片,可以做一个负责照像的app,再把你的web打包进这个应用里面。开源的PhoneGap框架是这么干的。这样widget,手机提醒也都没问题了。 但这种混合开发的问题在于,增加了复杂性,而且不象传统web那样可以直接在浏览器里运行。这个问题短时间内恐怕没辙。好在现在网络标准在不断的高速扩充,先进的浏览器也在一直跟进。Android 3.1已经支持camera了。iOS浏览器也支持WebSocket和设备方向检测了。 总得来说,移动设备在发展,而web也同样在快速变化。桌面浏览器本身,有5家主要浏览器开发商在改进现有标准,丰富新的功能。所以原生App在快速前进,同时,web也在缩小差距。

运行效率

正方:原生APP速度更快 原生APP没有瓶颈,而且可以直接调用GPU加速、使用多线程。 反方:现如今Web已经快多了,而且多数应用也用不着那么快。 这说法有点落伍了。Chrome发布之时带来的Javascript V8,给Web速度带来的飞跃。而现在,计算速度变得更快了: 图片处理引擎已经使用web加速。现在硬件加速也已经开始应用了。看看用上硬件加速的canvas( 图表来源 要开发3D游戏的就不用抬杠了,但对于平而来说,新闻、邮件、时间管理、社交网络,这些用Web都够用了。试试Steve Souders的手机性能测试工具。 另外,越来越多的框架结合WebGL,可以发挥OpenGL的优势了。比如ImpactJS,帮助开发JS游戏。

开发感受

正方:原生APP好写 原生APP使用强壮的程序语言(Java, Objective C, C++)。适合写复杂程序,经过历史验证,API丰富。在桌面环境可以方便的用模拟器测试。而Web程序的runtimes和乱七八糟的各路浏览器让人头大。 反方:一般都是Web更简单,特别是需要兼容不同设备的时候。 Web最初的功能只限于文档展示,而不是程序应用,貌似最近俩星期才有了JS。但有了JS后,web的世界马上就不一样了。更何况web不只是静止的,HTML5,CSS3,EcmaScript Harmony(谁知道这是什么?)都给开发者极大帮助。你是喜欢C++,java, JavaScript,那你的个人爱好,也是基于你已经攒下的代码。但是现在没人能否认JavaScript也和前者站在同一擂台上。 浏览器/runtime的互不兼容(碎片),反过来看做APP也是一样。用Java写了Android app,然后又要面对iOS的Objective C。如果能写一个程序,马上能在Android和iOS上运行,多省事啊。这咱还没提WebOS, BlackBerry,Windows Mobile呢。当然,这是理论上的。要是想让程序在每个平台都跑得很漂亮,得做不少调试和妥协。这对很多原生APP也是一样的。不同OS版本,不同的设备。。。 所谓的Web碎片化,一直都是如此。但好消息是现在已经有很多不错的解决办法。Modernizr库,用得好的话,可以帮你兼容一大批主流设备,不管是啥系统,哪个牌子的。看看我们2011年的Google IO演示。

用户体验

正方:原生APP更切合原有平台 操作感受的定义之一,就是用户希望在你的程序里,用与系统连贯统一的方式来操作。不同的平台,都有一些约定俗成的习惯。比如长按按钮会有啥反应。你不能指望用一套统一的HTML5 App去满足所有用户。 此外,整个平台的操作感受都由用平台自有的软件库协调。直接调用平台工具包就能直接免费获得完整支持。 反方:我们Web有自己的传统,你要特想做原有平台那种感觉的web,也一样能做出来 前面说了,Web开发的方式,是先做一个大体适合所有平台的版本,然后再针对不同平台不断改进。当这些改进主要是针对功能时,你可以选择几个你最关心的平台做优化。类似于浏览器检测。技术论坛里的悲催技术员们,经常抱怨这事。太多不同的浏览器版本了。不过如果你优先关注两三种主流平台,是值得为他们多花点时间做做优化。 web本来就有自己的操作感受。我们也可以说,不同的默认浏览器以及运行环境造就了独特的"Web感受"。从更广的角度看,这本身就是一种用户公认的方式。此外,还有很多成功的案例并不遵循移动设备的原生操作习惯,人家也成功了。想想你最喜欢的手机游戏的界面?很多更传统的app也是一样,比如Twitter客户端。

传播途径

正方:原生应用更容易接触客户 象Google Play和Apple Store这样的app发布机制这几年势不可挡,推动了整个移动行业。每个程序员都能在市场里发布自己的应用。用户都挤在市场里浏览,搜索,接受推荐。不仅如此,只要你的程序够好,现有用户的打分会帮助你说服更多新的客户。 反方:其实web才容易接触到客户 通过web找到内容,这是经过论证的可靠途径。利用URL,每一项发布的内容都有一个独立的地址,包括在网站上发布的应用程序。搜索引擎帮助发现内容,其他网站提供链接,还有一些类似应用市场的分类网站。用户还可以邮件、短信、在社交网站分享你的链接。你的应用链接可以直接在不同设备上直接打开。 web上还没有一个统一的评分系统,但这个情况也在发生改变。往下看。。。

收费

正方:App收费:应天意,顺民生 “六岁孩子午饭时做app,$3一个,卖出几百万”。最近常听看到这样的新闻。各种大小厂商也跟着蜂拥而至,等着圈钱。应用商点帮开发商直接收费。最简单的办法,一次性收费。也有在app里再另行收费或者做订阅收费的,这帮助开发商赢得长期稳定的回报。 此外,传统网站的广告、赞助,在app里也同样适用。 反方:网站赚钱,从来都不是问题。现在机会还越来越多 Web能成为现在社会的推动力,有能力用多种方式取得回报,这是基本条件。虽然使用付费并不普遍。但SaaS的模式已经相当普及了。成功案例包括Google Apps,37Signals的系列产品,各类邮件的收费版。另外,直接收费并不是web应用的唯一模式。广告、会员链接,赞助,其他产品服务的交叉推广都是可选的模式。 看着能在应用市场里直接赚钱而眼红的Web开发商们,你们不能直接把你的URL发进市场,但是做一个浏览web的app的壳子来连到自己的web上怎么样?现在市场中如果不说数以千计,至少也有上百的app这么干了。有些包装的好的,你甚至察觉不到他是一个web程序。 以后应用市场会直接支持web程序吗?这个现在还不好说,但去年Google已经建了个Chrome web store。虽然还只能从桌面电脑放问,但这已经挑起了浏览器厂商的兴趣。现在还只是个初步概念,但看起来挺有前途。

结论

现在还看不出完胜的一方。有些应用适合做app,有一些适合用html5。目前的情况,原生APP肯定是一个很重要的选择。上面提到的混合式开发,可能是一个不错的妥协方案。能用web的时候用app调用web。web实现不了的功能用app开发。 如果你选择web方式,要在web标准和不断的改进上用心。web技术本身的优点就是能兼容大批不同的操作系统和设备。消极的看,你也可以这是碎片,但web就是一切通吃。   原文链接: http://www.unicom-china.com/blog/HTML5-vs-iOS-Android-native-app

相关 [html5 取代 android] 推荐:

HTML5能否取代Android和iOS应用?

- - CSS库
大量新生移动设备的兴起,改变了互联网的未来. 在技术的发展上, HTML5会取代App应用吗. 在HTML5规范中,已经加入了相机、磁力罗盘、GPS信息的支持. 很多新兴浏览器也已经开始支持这些新特性. 能否用一个统一的HTML5来替代 android和 ios并行开发的双重成本呢. 以下译自Michael Mahemoff的一篇文章,详细分析了HTML5能否取代Android和iOS应用程序.

HTML5能取代Android和iOS应用程序吗?

- - VooSee - 拮取生活中的彩虹
  大量新生移动设备的兴起,改变了互联网的未来. 在HTML5规范中,已经加入了相机、磁力罗盘、GPS信息的支持. 很多新兴浏览器也已经开始支持这些新特性. 能否用一个统一的HTML5来替代android和ios并行开发的双重成本呢. 以下译自Michael Mahemoff的一篇文章,详细分析了HTML5能否取代Android和iOS应用程序.

HTML5真的能取代Android和iOS应用程序?

- - 盒子UI
大量新生移动设备的兴起,改变了互联网的未来. 在技术的发展上,HTML5会取代App应用吗. 在HTML5规范中,已经加入了相机、磁力罗盘、GPS信息的支持. 很多新兴浏览器也已经开始支持这些新特性. 能否用一个统一的HTML5来替代android和ios并行开发的双重成本呢. 以下译自Michael Mahemoff的一篇文章,详细分析了HTML5能否取代Android和iOS应用程序.

Adobe推HTML5开发工具 取代Flash可兼容苹果‎

- Yu Jianrong - HTML5研究小组
北京时间8月2日消息,据国外媒体报道,苹果和Adobe就是否支持Flash闹得不可开交. 日前,在开发人员要求之下,Adobe推出了一种支持HTML5的网站互动应用开发工具,开发人员可以摆脱对Flash的依赖. Adobe的开发工具名为“AdobeEdge”,8月1日开始提供预览版的下载,Adobe方面表示,预计将在2012年正式推出这款开发工具.

BBC已经在新闻页面用HTML5取代Flash

- - HTML5研究小组
就在80% 的Web 视频已经被统计出采用HTML5 规范的今天,英国媒体BBC 宣布将其新闻网站中的所有页面改组成HTML5 规范,之前的Flash播放器及其内容将随之淡出. 这意味着BBC针对移动设备以及不同种类不同平台浏览器的兼容性将变得更好. 而业内担忧的是HTML5的控制功能并不完善,是否可以胜任视频传输的任务,此外HTML5没有Flash的DRM来控制版权视频的播放.

HTML5同DRM合作有可能取代原生应用

- - 行业资讯
  必要时,两个本没有多亲密的人要共同努力为同一目标而奋斗:阿波罗和洛基共同打败T先生;蝙蝠侠和猫女在黑暗骑士崛起中一同打败贝恩,无论如何也许一方不能实现的目标有了另一方的加盟便可走向成功. 在移动终端上的应用开发方面,HTML5和DRM(数字版权管理)已经成了不可阻挡的趋势. 他们两个的合作势必会赢得移动设备应用之战.

Android 阻挡了 Google 拥抱 HTML5 的步伐?

- 橙子 - 爱范儿 · Beats of Bits
Strobe 是一个为移动应用构建提供开源框架的初创公司. 该公司负责商业开发的高级副总裁 Matt Asay 曾是 Canonical(发行 Ubuntu 的公司)的首席运营官, 也曾担任过 Alfresco 公司的副总裁,在开源领域有着 10 多年的经验. Matt Asay 在 The Register 网站有个两周一次的专栏“开放……和封闭”(Open… and Shut),专注于软件开发中的开放和封闭之争.

被禁之后,Grooveshark凭借HTML5应用重回iOS和Android

- - HTML5研究小组
Grooveshark可能已经被iTunes App Store 和Android Market下架了,但这并没有阻止这个富有争议性的音乐流新公司推进它的移动策略. 这个公司没有和Apple和Google纠缠不休,而是通过发布一个 Web app,在HTML5的帮助下放弃使用Flash,将一切掌握在了自己手中.

【转载】在Android上使用HTML5观看视频 | 维奇@HOME

- - HTML5研究小组
我希望让更多的人能够了解一种将取代 Flash 的东西,所以我尽量写的比较直白——即使程序员的逻辑在常人看来已经完全属于“异类”了. Adobe 公司放弃移动平台的 Flash 支持已经是板上钉钉的事了,Google Play 的 Flash 插件也会在 8 月份下架,这在一定程度上也会促进 HTML5 的发展和普及,因此我个人还是对 Adobe 的做法十分赞赏的.

HTML5调用android手机摄像头拍照

- - 移动开发 - ITeye博客
HTML5 The Media Capture API提供了对摄像头的可编程访问,用户可以直接用getUserMedia获得摄像头提供的视频流. 但实际上用html5调用手机摄像头存在很多问题:. 1)谷歌的发布的Chrome到了21版本后,才新增了一个用于高质量视频音频通讯的getUserMedia API,该API允许Web应用程序访问摄像头和麦克风,其他手机浏览器只有opera支持html5调用本地拍照功能.