青青子衿, 悠悠我心, 但为君故, 沉吟至今
« 程序员真的很懒Instagram完全新手指南 »

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

  大量新生移动设备的兴起,改变了互联网的未来。在技术的发展上,HTML5会取代App应用吗?或者说能够在多大程度上取代呢?在HTML5规范中,已经加入了相机、磁力罗盘、GPS信息的支持。很多新兴浏览器也已经开始支持这些新特性。能否用一个统一的HTML5来替代android和ios并行开发的双重成本呢?以下译自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(图表来源

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

  要开发3D游戏的就不用抬杠了,但对于平而来说,新闻、邮件、时间管理、社交网络,这些用Web都够用了。试试Steve Souders的手机性能测试工具。 另外,越来越多的框架结合WebGL,可以发挥OpenGL的优势了。比如ImpactJS,帮助开发JS游戏。

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

  开发感受

  正方:原生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就是一切通吃。

  英文原文:HTML5 VS NATIVE: THE MOBILE APP DEBATE

  中文翻译:unicom-china



  除非注明,月光博客文章均为原创,转载请以链接形式标明本文地址

  本文地址:http://www.williamlong.info/archives/3063.html
  • 文章排行:
  • 1.Robert_Chow
  • 这就和PC时代一样,Native应用在一些领域永远不可能被取代,兼容并蓄倒是未来的方向。
  • 2012/4/17 12:54:09   支持(28)反对(12) 回复
  • 2.浮云
  • 程序员不要指望自己用的技术能够多辉煌,这本身就是个误区,选择自己喜欢的类型,比如你喜欢移动,那就去做,现在用android ok,将来android不行了,那就去用别的移动开发技术,不便的是基础,数据结构,数学,算法还有你的创造性思维
  • 2013/4/4 1:43:59   支持(19)反对(3) 回复
  • 4.楼下是德克斯特
  • 免费的能有大批开发者去开发好东西吗?APP成功是因为开发者能赢利
  • 2012/4/17 8:44:05   支持(28)反对(15) 回复
  • 5.vazi
  • 世界之大,用户之广,绝对可以容得下两种技术并存。为什么一定是要取代呢?
  • 2012/4/17 0:57:46   支持(25)反对(13) 回复
  • 6.徐建华Style
  • 技术 是没有可代替性的,新技术的发展 可能是为了适应新的市场及需求,但旧的产品却一样可以走好。
  • 2012/4/17 14:30:01   支持(20)反对(11) 回复
  • 7.142GuCs3
  • 仅限于交集吧,对于某些类型的app,web app就可以满足需求。对于适配而言,web app优势很大。
  • 2012/4/17 0:25:50   支持(16)反对(8) 回复
  • 8.图腾Wanston
  • 只要how to make love5能够走进主流chrome os就会迎来春天。看吧,我没醉。
  • 2012/4/17 0:36:28   支持(18)反对(11) 回复
  • 9.爱美之夏
  • 不能够。就像现在的云一样,不可能完全取代的。
  • 2012/4/17 1:10:21   支持(19)反对(12) 回复
  • 10.xxxxxxx
  • 网速够吗?如果网速跟不上,什么html5,什么性能,什么b/s都是废的!!
  • 2012/5/4 13:24:29   支持(25)反对(18) 回复
  • 11.猫儿不会飞却能打老虎_zai农大
  • 前景可观。但是抵触有点大。人家未必肯给支持...
  • 2012/4/17 0:02:36   支持(18)反对(12) 回复
  • 12.刘纪非
  • 虽然会占很大份额但是不会取代。
  • 2012/4/17 0:49:03   支持(22)反对(16) 回复
  • 13.关中浮云张
  • 不会的、个性化才是硬道理
  • 2012/4/17 0:54:51   支持(20)反对(14) 回复
  • 14.吵吵
  • 一个是执行效率一个是开发效率,你选择哪个?
  • 2012/4/21 9:13:15   支持(23)反对(17) 回复
  • 16.行畔博客
  • HTML5技术发展这么快,想必会有很大的影响力!
  • 2012/4/17 21:30:05   支持(20)反对(15) 回复
  • 17.许庆来
  • 这个就跟"chrome 能取代 windows 操作系统吗?"一个道理。
  • 2012/4/16 23:59:41   支持(34)反对(30) 回复
  • 18.张子游V
  • html5,可以推送吗?本地的可以!
    yyjij 于 2013-12-12 17:56:09 回复
    websocket
  • 2012/4/17 1:42:18   支持(21)反对(17) 回复
  • 19.pig
  • 原生的速度比虚拟机里面执行的速度更快。常用的,可以装APP,只要它做得好,不常用的就直接浏览器里面用。
  • 2012/4/17 1:47:48   支持(16)反对(12) 回复
  • 20.博客控
  • 最终只会并存,就像PC时代一样。
  • 2012/4/17 7:57:21   支持(19)反对(15) 回复
  • 21.是叫小徐好呢还是叫老徐
  • 掐指一算,貌似取代不了
  • 2012/4/17 9:23:47   支持(19)反对(15) 回复
  • 22.lucifer
  • windows 8已经告诉大家
    无论是html还是本地语言开发 都不是问题。
    在window 8下 html照样开发本地app,同时开发web程序

    作者的标题应该改成 web 程序还是 本地app
  • 2012/5/2 16:43:23   支持(16)反对(12) 回复
  • 23.noodles333
  • 看好web前景,至少相比几个月前,微博,人人等html做的都很漂亮,用着也不错,所以新闻类的将来肯定被web取代
  • 2012/4/17 8:04:23   支持(21)反对(18) 回复
  • 24.飘渺之弦
  • 一旦形成趋势,恐怕挡都挡不住
  • 2012/4/17 8:16:58   支持(19)反对(16) 回复
  • 25.龙凯南
  • 很多职业(jobs)传教说,XX技术会退出舞台,他因为政策需要故意不看对手技术的发展和未来,也故意不看技术共存,为了杀死对手而杀死技术。为什么总要谁取代谁,而看不到是人都能看到的共存呢?对用户来说,是多一种选择,对技术人员来说,不过是从不停的学习新技术到不停的学习新技术。
  • 2012/4/17 9:19:54   支持(21)反对(18) 回复
  • 26.四海号码通
  • 普及还需要很长的过程。
  • 2012/4/16 23:38:23   支持(17)反对(15) 回复
  • 28.化妆品
  • 毕竟安卓和os也是正在流行,想取代没那么容易!
  • 2012/4/17 10:33:49   支持(16)反对(14) 回复
  • 29.eric
  • ECMAScript Harmony实际上就是JavaScript的未来版本,名字翻译过来是和谐的意思吧,其实Javascript真正的名字应该是ECMAScript
    zyh 于 2015-1-6 14:50:21 回复
    JavaScipt = ECMAScript + DOM + BOM
  • 2012/4/23 23:16:51   支持(20)反对(18) 回复
  • 30.weiweiok
  • 99%几率,永远取代不了。
    假如把开发移动APP比做是杀猪,原生开发是拿刀直接去把猪分解成肉块,干脆、直接、简单。而WEB开发则像是一个中国人坐在一遍,用蹩脚的中国式英语指挥一个老外这里切一下,哪里砍一刀,最后费劲九牛二虎之力,终于得到了一块猪肉,啰嗦、复杂、麻烦。
  • 2015/1/9 15:23:51   支持(5)反对(3) 回复
  • 31.kanhuijiji
  • 到底也没说能不能取代啊
  • 2012/4/17 16:37:13   支持(20)反对(19) 回复
  • 32.技术人
  • 好文章,顶起来!如需技术支持可以联系我
    App无需经过苹果漫长严格审核,直接发布:通过网页或二维码,无需苹果帐号一键下载安装!无需越狱都可安装,无数量限制
    免费提供App网页自动下载安装所需服务器!免费自动安装文件配置服务!
    苹果和安卓App开发定制,修改编辑破解,苹果开发者帐号证书,极速上线各大市场,上架苹果商店 QQ:1256932816
  • 2015/1/12 18:53:12   支持(5)反对(4) 回复
  • 33.技术人
  • 免费提供App网页自动下载安装所需https服务器!
    ios app无需经过苹果漫长严格审核,直接发布,通过网页或二维码,无需苹果帐号一键下载安装!无需越狱都可安装,无数量限制
    苹果和安卓App开发定制,修改编辑破解,苹果开发者帐号证书,极速上线各大市场,上架苹果商店,QQ:1256932816
  • 2015/1/21 18:40:54   支持(9)反对(8) 回复
  • 34.Jason施京松
  • 同样效果的话,html5比本地app需要更多流量,所以等流量费用下来,html5才会好
  • 2012/4/17 7:21:47   支持(17)反对(17) 回复
  • 35.Trufun-UML专家
  • 肯定是一个趋势,就是需要时间!
  • 2012/4/17 8:50:51   支持(15)反对(15) 回复
  • 36.三恰网邪恶动态图
  • 好多年过去了,HTML5取代了APP吗?请问!
  • 2015/9/11 21:29:27   支持(3)反对(3) 回复
  • 38.jeffery_yuan
  • HTML5 is the future, and is a must-have-skill for web developers...
  • 2012/4/17 0:07:26   支持(13)反对(14) 回复
  • 39.Rmd_
  • 在解决无线流量高费用的问题之前,本地app仍不可取代!
  • 2012/4/17 1:38:25   支持(16)反对(17) 回复
  • 40.心梦全真
  • 如果能占到百分之八十基本几本就算取代了,我看好这个
  • 2012/4/17 1:47:08   支持(16)反对(17) 回复
  • 41.武汉文件柜02784765390
  • 用户的习惯最可怕,习惯了的东西一般很难得去替代。如IM通讯中QQ.SE中文引擎BAIDU.
  • 2012/4/17 19:05:35   支持(12)反对(13) 回复
  • 42.niser
  • 我总觉得只要浏览器做出妥协,那么这个问题将完美解决。
  • 2014/10/15 10:45:04   支持(8)反对(9) 回复
  • 43.许可V5
  • HTML5未必能熬到辉煌的时候
  • 2012/4/16 23:48:04   支持(18)反对(20) 回复
  • 44.wayshall
  • 唉……每次看到这种一统天下的宣言都觉得好无语~~~
  • 2012/4/17 0:11:19   支持(14)反对(16) 回复
  • 45.卧云
  • 文章明显有倾向性啊,用Html5或者移动中间件写出来的App要想达到native language的体验并且兼容性足够好实际上相当困难
  • 2012/4/17 0:31:38   支持(17)反对(19) 回复
  • 46.互联网娱乐新闻
  • 这就是雷军同志说的那种把猪放在风口,猪也会飞的那种风吧。
  • 2012/4/17 1:32:37   支持(12)反对(14) 回复
  • 47.美国人华莱士
  • html5天朝有天生缺陷
  • 2012/4/17 7:45:59   支持(16)反对(18) 回复
  • 48.石沉溪
  • 补充而已,绝不可能取代。
  • 2012/4/17 0:16:09   支持(13)反对(16) 回复
  • 49.此用户已被关闭
  • 不会的。就像本地应用和网页端应用能共存一样。
  • 2012/4/17 1:04:32   支持(12)反对(15) 回复
  • 50.边涛
  • 线上应用是趋势,这个不用怀疑,只是时间问题,app存在固有领域和优势不会被完全取代,如系统级杀毒安全,和对性能较高应用,但带宽发展超过硬盘速度后,一切都是云。
  • 2012/4/17 6:24:39   支持(14)反对(17) 回复
  • 51.HTML5研究小组
  • 「观点热议」欢迎大家发表各种看法。
  • 2012/4/17 8:11:10   支持(9)反对(12) 回复
  • 52.小桂子公公
  • 不会取代。第一,互联网基础服务,如视频,社交,电子商务等因为大公司的推动继续通过App实现;第二,HTML5不能支持的手机特性,App支持更有效率;第三,App的先发优势。但是,移动Web发展会非常迅速:第一,长尾应用开发者,因为收入、开发成本等因素转向通过Web提供服务;第二,App的信息孤岛效应。
  • 2012/4/17 9:56:43   支持(15)反对(18) 回复
  • 53.月月bird
  • 时间问题,就互联网云计算的发展势头来看,web应用迟早要成主流,不过现在不行。
  • 2012/4/17 19:35:09   支持(14)反对(17) 回复
  • 54.zk546113096
  • 每个东西,都有它存在的价值,等他的价值没了,也就离消失不远了
  • 2012/4/18 17:32:22   支持(11)反对(14) 回复
  • 55.goalgogo
  • 能否?取决于浏览器的更多支持
  • 2012/4/17 0:42:17   支持(12)反对(16) 回复
  • 57.刘进
  • 趋势是必定的,时间是不定的,中国是有问题的。
  • 2012/4/17 8:23:45   支持(14)反对(19) 回复
  • 58.诸葛诺博客
  • 不只是生活 这些技术都在成长……
  • 2012/4/23 21:40:51   支持(14)反对(20) 回复
  • 59.黄跃涛
  • 这个。。不用多说,一定是共存的,不用去取代
  • 2012/4/17 1:16:10   支持(11)反对(18) 回复
  • 60.长石
  • html5 什么时候 长石kuang-shi.c o m
  • 2012/4/21 18:49:32   支持(10)反对(18) 回复
  • 61.康师傅胖了
  • 大家都在等待html5的杀手级应用来做个赚钱的榜样,如果一直没有,那就是叫好不叫座了。
  • 2012/4/17 1:27:47   支持(14)反对(23) 回复

发表评论:

 请勿发送垃圾信息、广告、推广信息或链接,这样的信息将会被直接删除。

订阅博客

  • 订阅我的博客:订阅我的博客
  • 关注新浪微博:关注新浪微博
  • 关注腾讯微博:关注腾讯微博
  • 关注认证空间:关注QQ空间
  • 通过电子邮件订阅
  • 通过QQ邮件订阅

站内搜索

热文排行


月度排行

本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享. 转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议.
This site is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License.