HTML5资讯

当前位置: HTML5技术网 > HTML5资讯 > 移动开发:HTML5 与本地 App 孰优孰劣?

移动开发:HTML5 与本地 App 孰优孰劣?

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


  以下为文章原文


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


  1、功能丰富


  正方:App 里可以开发出更丰富的功能。我们把移动功能分成两类。程序本身和程序与系统的结合。比如在 Android 里,加入 Widget 图标或者通知提醒之类的。App 对这两者都没问题。不用多说,这是肯定的。


  反方:虽然 APP 发展迅猛,但 Web 也正在迎头跟进。确实很多原生 App 实现的功能是 HTML5 望尘莫及的。不管你的 Web 做的再好,如果停留在一个没有摄像头支持的沙盒中,还是无法满足一些功能。幸运的是,现在没有这样的沙盒限制了。如果你需要你的 Web 来照相,可以做一个负责照像的 App,再把你的 Web 打包进这个应用里面。开源的 PhoneGap 框架就是这么做的。


  但这种混合开发的问题在于,增加了项目的复杂性,而且不象传统 Web 那样可以直接在浏览器里运行。这个问题短时间内恐怕还无法解决。不过好在现在网络标准在不断的高速扩充,先进的浏览器也在一直跟进。Android 3.1 已经支持 Camera 了。iOS 浏览器也开始支持 WebSocket 和设备方向检测了。


  总得来说,移动设备在发展,而 Web 也同样在快速变化。而目前也有 5 家主要浏览器开发商在改进现有标准,丰富新的功能。所以原生 App 在快速前进,同时,Web 也在缩小差距。


  2、运行效率


  正方:原生 APP 速度更快。原生 APP 没有瓶颈,而且可以直接调用 GPU 加速、使用多线程。


  反方:现如今 Web 的速度已经很快,而且多数应用不需要这么快的速度。


  这种说法有点落伍了。Chrome 发布之时带来的 Javascript V8,给 Web 访问速度带来质的飞跃。而现在,计算速度变得更快了。


  图片处理引擎已经使用 Web 来加速。现在硬件加速也已经开始。让我们看看用上硬件加速的 Canvas 的效果:


  如果要开发 3D 游戏,或许速度还不够,但对于普通用户来说,新闻、邮件、时间管理、社交网络,这些用 Web 就已经足够。另外,越来越多的框架结合 WebGL,可以发挥 OpenGL 的优势了。


  3、开发感受


  正方:原生 APP 易于开发。原生 APP 使用强壮的程序语言(Java, Objective C, C++),适合编写复杂的程序,API 丰富,在桌面环境可以方便的用模拟器进行测试。而 Web 程序的 Runtime 和乱七八糟的各路浏览器让人头疼不已。


  反方:一般来说 WEB 更简单一些,特别是需要兼容不同设备的时候。WEB 最初的功能只限于文档展示,而不是程序应用。更何况 Web 不只是静止的,HTML5,CSS3都给开发者极大帮助。虽然你喜欢C++,Java, Javascript,但是现在没人能否认 Javascript 也和前者站在同一擂台上。


  浏览器/Runtime 的互不兼容(碎片化),APP 也存在同样的情况。用 Java 写了 Android App,然后又要面对 iOS 的 Objective C。此外还有 WebOS, BlackBerry,Windows Mobile 等。如果能写一个程序,马上能在所有平台上运行,这该多么方便啊。当然,这只是一个理想。要是想让程序在每个平台都能正常的运行,就要做不少调试和妥协。这对很多原生 APP 也是一样的。


  所谓的 Web 碎片化,一直都是如此。但好消息是现在已经有很多不错的解决办法。比如 Modernizr 库就可以帮你兼容一大批主流设备,不管是哪种系统平台。有兴趣的话,你可以看看2011年的 Google IO 演示。


  4、用户体验


  正方:原生 APP 更契合原有平台。操作感受的定义之一,就是用户希望在你的程序里,用与系统连贯统一的方式来操作。不同的平台,都有一些约定俗成的习惯。你不能期望用一套统一的 HTML5 App 去满足所有用户。


  此外,整个平台的操作感受都由用平台自有的软件库协调。直接调用平台工具包就能直接免费获得完整支持。


  反方:Web 有自己的传统,但如果你想开发带有原有平台那种感觉的 Web,同样可以做出来。前面已经讲过,WEB 开发的方式,是先做一个大体适合所有平台的版本,然后再针对不同平台不断改进。当这些改进主要是针对功能时,你可以选择几个你最关心的平台做优化。类似于浏览器检测。我们经常可以听到技术论坛里的程序员们,抱怨有太多的浏览器版本要测试。不过如果你优先关注两三种主流平台,是值得为它们多花点时间做优化的。


  Web 本来就有自己的操作感受。我们也可以说,不同的默认浏览器以及运行环境造就了独特的"Web 感受"。从更广的角度看,这本身就是一种用户公认的方式。此外,还有很多成功的案例并不遵循移动设备的原生操作习惯,但却成功了。想想你最喜欢的手机游戏的界面?很多更传统的 App 也是一样,比如 Twitter 的客户端。


  5、传播途径


  正方:原生 App 更容易接触客户。像 Google Play 和 Apple Store 这样的 App 商店这几年势不可挡,推动了整个移动行业的发展。每个程序员都能在市场里发布自己的应用。用户都挤在市场里浏览、搜索、接受推荐。不仅如此,只要你的程序足够好,现有用户的打分会帮助你说服更多新的客户。


  反方:其实 Web 才容易接触到客户。通过 Web 找到内容,这是经过论证的可靠途径。利用 URL,每一项发布的内容都有一个独立的地址,包括在网站上发布的应用程序。搜索引擎帮助发现内容,其他网站提供链接,还有一些类似应用市场的分类网站。用户还可以通过邮件、短信和社交网站分享你的链接。你的应用链接可以直接在不同设备上直接打开。


  6、收费


  正方:App 收费,应天意,顺民生。“六岁孩子在午饭时做的 App,3美刀一个,已经卖出几百万”。最近常听到类似的新闻。各种大小厂商也跟着蜂拥而至,等着圈钱。应用商点帮开发商直接收费。最简单的办法,一次性收费。也有在 App 里再另行收费或者做订阅收费的,这都帮助开发商赢得长期稳定的回报。


  此外,传统网站的广告、赞助,在 App 里也同样适用。


  反方:网站赚钱,从来都不是问题。现在机会还会越来越多。Web 能成为现在社会的推动力,有能力用多种方式取得回报,这是基本条件。虽然使用付费并不普遍。但 SaaS 的模式已经相当普及了。成功案例包括 Google Apps 系列产品,各类邮件的收费版等等。另外,直接收费并不是 Web 应用的唯一模式。广告、会员链接、赞助和其他产品服务的交叉推广都是可选的模式。


  看着能在应用市场里直接赚钱而眼红的 Web 开发者们,你们不能直接把你的 URL 发进市场,但是做一个浏览 Web 的 App 的壳子来连接到自己的 Web 上怎么样?现在市场中已经有成百上千的 App 正在这样做。有些包装的很好,以至于你甚至都察觉不到它是一个 Web 程序。


  以后应用市场会直接支持 Web 程序吗?这个现在还不好说,但 Google 已经建建立了 Chrome Web Store。虽然还只能从桌面电脑放问,但这已经挑起了浏览器厂商的兴趣。


  结论


  现在还看不出有完胜的一方。有些应用适合做 App,有一些适合用 HTML5。以目前的情况来看,原生 APP 肯定是一个很重要的方向。上面提到的混合式开发,可能是一个不错的妥协方案。能用 Web 的时候用 App 调用 Web,Web 实现不了的功能再用 App 开发。


  如果你选择 Web 方式,就要在 Web 标准和不断的改进上用心。Web 技术本身的优点就是能兼容大批不同的操作系统和设备。

【移动开发:HTML5 与本地 App 孰优孰劣?】相关文章

1. 移动开发:HTML5 与本地 App 孰优孰劣?

2. 跨平台开发:初探AppCan移动开发框架

3. Web移动开发:前端开发学习资源集合

4. 移动开发中HTML5能否替代本地程序?

5. 移动开发跨平台之争:本地应用还是HTML5?

6. HTML5的仿本地应用移动端UI互动开发框架

7. 杨永智:HTML5是移动开发者的未来

8. 支付宝“技术风云会”:HTML5引发的移动开发变革

9. 移动开发跨平台之争:HTML5只是看上去很美?

10. HTML5开发:原理与实现

本文来源:https://www.51html5.com/a2555.html

点击展开全部

﹝移动开发:HTML5 与本地 App 孰优孰劣?﹞相关内容

「移动开发:HTML5 与本地 App 孰优孰劣?」相关专题

其它栏目

也许您还喜欢