原生 or 混合 ? 关于应用永不停息的争论

摘要:原生应用和混合应用的争论愈演愈烈。在移动技术的世界,我们需要了解本地应用和混合应用的利弊。

【编者按】作者 Jose Maria Arranz是 ItsNat AJAX Java web 、ItsNat Droid Android framework 等的网站的创始人,本篇文章中,Jose 通过对比原生应用和混合应用的诸多利弊,让更多的人了解到两者之间的区别,根据需求选择更适合的类型应用。

混合还是本地?这是一个问题。针对这一问题我也来说两句(以下纯属个人观点)。

语言

原生应用:使用「严肃的语言」,比如 Swift(iOS)或 Java(Android)。「严肃」意味着:静态类型、良好地面向对象技术和快速。

混合应用:基于可怕的 JavaScript 语言(弱类型,不够好的 OOP,没本地语言那么快),不幸的是,如果你的应用界面相当复杂,你就须要做好准备来堆积大量笨拙的 JavaScript 语言。在纯 Web 下你有 GWT、Dart……来生成 JavaScript,在移动网络中避免使用 JavaScript 是件很困难的事。

与平台统一的用户界面

原生应用:触手可及、方便使用。只需使用默认的本地组件,就能得到一个完美的本地界面外观和感觉。

混合应用:必须使用移动工具来模拟本地用户界面,同时需要生成两个视觉版本(iOS / Android)。

访问本地 API

原生应用:直接且无限制的访问(仅适用于应用程序的安全限制)。

混合应用:必须使用移动工具,因为从 JavaScript 本地访问并非无限制,比如在 Android 中,由 JavaScript 代码调用的原生(Java)方法,必须在接口中定义好,这是移动工具包 API 的工作。如果你想要更强大的整合,需在本地 Java 语言下完成编程。事实上,所谓「混合」是因为许多混合应用是真正的混合本机网络,也就是一些基础元素是本机的(menues等),其他部分则由 Web 呈现。有些事情的确麻烦,比如 JavaScript 和本地代码之间必要的异步调用(例如,在 Android 上的 JavaScript 代码,在不同的主线程的线程独享执行)。

性能开发

这也许是本文主观性最强的部分。

在我看来,原生应用的发展远远超过了混合型,比如语言、工具、自然的原生整合等。是的,你必须做两款(iOS / Android)的应用程序,通常需要两个团队。两个团队在质量和发展方面的表现,都远远优于「一个混合队」。某些部分可以重复利用,比如数据管理使用的一个类似 Google 的 Java-Objective C 生成的工具。在我看来,如果需要支持视窗移动化,那它的优势并不是很大。

调试/测试

原生应用:本地工具已经非常好用。

混合应用:调试工具有很大改进,但与本地工具不可同日而语。

版本管理

在这个部分中,我们必须分清两种类型的混合应用之间的区别:

  1. 行为/用户界面(HTML、JS)通常是在本地。本质上说混合应用是自带的,这一点不同于本地应用。
  2. 行为/ 用户界面主要靠远程传输。本质上,混合应用就像是将一个移动网站,打包进一个原生应用中。

如果你的应用程序是类型 2 就好说了,版本管理远比原生应用更容易。在原生应用中,任何细微的 UI 变化和行为都需要一个新版本,你还得保持与旧版本的兼容,毕竟更新最终依赖用户完成。所以这的确是混合应用发展的发光点。

我怀疑亚马逊商店的移动版就是类型 2:

http://www.theserverside.com/news/2240174316/How-Amazon-discovered-hybrid-HTML5-Java-Android-app-development

「在移动应用中使用 HTML5 最重要的原因在于,在更新应用的过程中,无需依靠用户来升级。这种能力使得管理应用变得更容易、更安全——允许开发者根据需要进行更新。在移动技术世界的持续发展和现场测试中,这将是一个巨大的优势」。

原文地址:Native Mobile vs. Hybrid Mobile: The Eternal Question

本文系 OneAPM 工程师编译整理。OneAPM 是应用性能管理领域的新兴领军企业,能帮助企业用户和开发者轻松实现:缓慢的程序代码和 SQL 语句的实时抓取。想阅读更多技术文章,请访问 OneAPM 官方博客

时间: 2024-08-01 19:22:26

原生 or 混合 ? 关于应用永不停息的争论的相关文章

web开发原生开发混合开发的区别优势

最近有人在讨论是原生开发好还是,混合开发好,以下是引用了数据来说: 最近原生应用.Web应用.混合应用的名字让我们听得比较熟悉了,现在我们就通过评析各种应用的优缺点来更进一步看看这三者的区别. 一.原生应用 你使用过微软PowerPoint或者Word吧?这些可直接在你电脑上运行或者在智能手机上运行,简单来说,原生应用是特别为某种操作系统开发的,比如iOS.Android.黑莓等等,它们是在各自的移动设备上运行的. 优点: 可访问手机所有功能(GPS.摄像头): 速度更快.性能高.整体用户体验不

横向浅谈移动技术------( 原生,混合,web --- 谁能问鼎移动开发的明天)

目前移动互联网基本采用了NativeApp.WebApp.HybridApp三种开发模式,很难说这三种模式那种更优越,目前的情况可以说是三分天下吧,不同的开发者可以根据自己的实际情况选择不同的开发模式.谈论那种模式最好实际上事非常无聊的事情. 1.1.     APP三种开发模式 智能手机之普及不用多说,手机APP渗投到各个行业:电商(淘宝.京东等).金融(各手机行业.P2P借贷等).医疗(智慧医疗).交通(滴滴.Uber等).教育(慕课网等).餐饮(饿了吗.美团等)……反正只要是个企业,无论规

Vue+原生App混合开发手记#2 融云即时通讯

最近开发的一个医药项目中要求加入即时通讯,最后选择了融云IM即时通讯服务,融云即时通讯包含Android SDK,iOS SDK以及Web SDK,为了节省开发时间,使用了Web SDK,这样在Android平台和iOS平台上都能表现一致.这是部分界面的效果, 分为两类用户,一类是医生,接受患者的咨询,一类是患者,可以与医生交流: 医生用户看到的界面 患者用户看到的界面 聊天界面       获取App Key 首先进入融云官网,找到Web SDK开发指南,按照提示先注册一个账号,拿到AppKe

原生app,WEBAPP,混合app

什么叫做原生App? 原生App是专门针对某一类移动设备而生的,它们都是被直接安装到设备里,而用户一般也是通过网络商店或者卖场来获取例如    The App Store  与  Android Apps on Google Play . 随便说几个原生App的例子,比如iOS 的 Camera+  以及Android 的  KeePassDroid 什么叫做移动Web App? 一般说来,移动Web App都是都是需要用到网络的,它们利用设备上的浏览器(比如iPhone的Safari)来运行,

原生app,WEBAPP,混合app的差异

原生应用.Web应用.混合应用优缺点分析 原生App vs 移动Web App :定义 什么叫做原生App? 原生App是专门针对某一类移动设备而生的,它们都是被直接安装到设备里,而用户一般也是通过网络商店或者卖场来获取例如    The App Store  与  Android Apps on Google Play . 随便说几个原生App的例子,比如iOS 的 Camera+  以及Android 的  KeePassDroid 什么叫做移动Web App? 一般说来,移动Web App

web?混合?原生?移动开发的三种模式选择

原文网址链接:http://www.ctocio.com/mobile/10169.html 今天,消费者在移动app应用(包括原生和混合)上花费的时间(94分钟/天)超过移动web(72分钟/天),于是"移动优先"成为移动开发战略的热门口号,但实际上移动web和移动app又有各自不可替代的优势,不同的移动开发模式都有成功的案例,企业需要根据自身的产品和业务属性.移动战略及目标用户需求,选择适合自己的开发道路. 下面是AppCloud制作的一张信息图,为我们详细对比了纯web(HTML

AppCan赵庆华: Hybrid 混合开发正当时

巨大的市场对于App开发服务提供商来说是绝佳的机遇.AppCan作为国内混合开发的领导品牌,同时服务开发者B2D和企业级B2B市场,提供移动应用开发平台和企业移动整体解决方案.多年来,AppCan一直把降低APP开发的技术门槛.降低企业的移动化成本作为研发目标,致力打造一体化.一站式移动平台,让移动化进程不再受限于技术. 近日,51CTO记者采访了AppCan CTO赵庆华,他为我们介绍了AppCan如何利用Hybrid混合开发帮助企业移动化. 移动开发两大趋势:原生VS混合 移动化浪潮来临,传

HTML5 vs.原生,世界究竟是谁的?

摘要:移动互联网未来的发展走向,没有人能够进行准确的预测,其中存在很多变量.都说HTML5的时代真的来了,但总觉得HTML5与原生开发间并不存在竞争替代关系.各具优缺点的HTML5和原生应用开发,究竟哪个才是你的心头好? HTML5在近两年里可算是出尽了风头,无论是去年10月底的规范定稿,还是今年年初惊爆业内的微信开放JS SDK,亦或是腾讯.百度.360.搜狐等互联网巨头之间的布局争夺.这一切的一切似乎都在预示着HTML5将要给移动互联网界带来颠覆性变革. 也许以后,HTML5真的会重新定义移

企业云计算战略中混合搭配至关重要的5个原因

云计算的兴起解决了关于IT团队是否应该从各种提供商中选择特殊技术,还是从单一供应商那里选择完全集成的应用程序的争论.借助云计算,企业可以拥有最好的应用程序,以及最好的云平台用于处理IT任务.而且不必大量投资并自行构建基础设施.像小鸟云弹性云服务器采用纯SSD架构硬件设备,只需几分钟,便可轻松云端获取和启用,实现计算需求.可弹性扩展资源用量的同时,还能节约计算成本,简化IT运维工作,让您更专注于核心业务的创新. 以下简要介绍云计算和相关技术使企业的IT团队能够启动.集成.扩展.保护全系列应用程序的