混合应用与原生应用的区别

8
我需要创建一个iOS和Android的移动应用程序(因此是2个应用程序)。该应用程序将使用一些本地移动功能,并且很多功能与显示静态/动态信息有关。我计划将信息移至Web应用程序,然后在移动应用程序中简单地嵌入Web页面(HTML5)(基本上调用URL并显示信息)。
这是否是开发移动应用程序的常见方式?或者采用混合方法会出现问题?原生应用程序和混合应用程序之间有哪些优势(或相反)?
谢谢 Kamal
4个回答

25
有趣的是,我经常被问及或谈论这个特定的问题。以下是我的基本感受:
HTML 5、混合 HTML 5 / 原生和原生应用都是不错、几乎相当的选择,但要选择哪一个则是另一回事。
以下是我可能选择其中之一的原因,由于你们正在帮助我了解编程世界,我将加入产品(我主要从事的领域)对市场定位和业务方面的思考。 HTML 5技术原因:我需要这个应用程序在用户可能拥有的任何设备上运行,这个应用程序将不会利用任何专有或复杂的设备功能(上传照片、触发推送通知...)。 HTML 5产品原因:HTML 5 可以通过两种方式大幅降低开发成本。(1)招聘标准前端工程项目(如HTML 5开发人员)的人才池更大(因此成本更低),而iOS和Android开发人员则要求极高的薪酬水平,很难找到(2)只需构建一次, 维护、质量保证和设置预生产环境都容易得多。
此外,你无需处理应用商店获取收入的问题。最经典的例子是《金融时报》(FT)最近做的。 FT 的赚钱方式是通过大多数银行家都会购买的高价订阅来实现。因此,他们拥有忠诚、无法逃脱和价格不灵敏的受众,并且他们的主要收入来源几乎完全来自订阅。当他们在苹果应用商店上发布应用程序时,他们不可能给予苹果任何新订户的 30%。他们退出了应用商店,并建立了一个最全面和令人印象深刻的Web应用程序,几乎感觉像是一个应用程序,在几乎任何支持Java的手机上运行,并允许他们保留从订户那里获得的金钱。在开发界,他们因此网站而得到了许多赞誉(你可以在手机上查看它,我认为它是www.ft.com),并通过成为创新者增加了品牌知名度。游戏、盘、输。
HTML 5唯一的最终巨大优势是你不需要处理应用商店的问题。这意味着你的手不受约束,你也可以随时进行更改,使产品形成更多的迭代和更好的产品比每次需要提交给Apple并等待两周才能做出任何增强的Hybrid方式更快(这在某种程度上也有所缓解)。管理ABC新闻的HTML 5平板电脑站点时,非常重要的是我们能够非常快速地修复问题,在新闻行业中,这种方法非常适合。 混合HTML 5 / 原生技术原因:我希望这个应用程序在尽可能多的平台上运行,但我会交换一些功能,以获得一些受欢迎的专有和复杂设备功能。我也可以接受设计不总是完美无缺,并且有时可能会有些缓慢的情况。

混合HTML 5/本地产品的原因:如果我有一个应用程序需要至少在iOS/Android上运行,不是完全自定义的体验,并且需要在应用商店中作为应用程序存在,那么混合方法可能是最好的选择,广告商对购买应用程序很感兴趣,而移动Web几乎没有引起他们的关注。与仅使用HTML 5相比,建立一个移动网站要便宜得多,然后雇用一名本地开发人员为您快速构建iOS/Android/Windows的应用程序包装器即可。除此之外,您只需调整HTML部分、创建一个新实例,就可以获得一个移动网站额外奖励!

这里面的一个危险是,如果HTML 5不是响应式的或锁定在320x480和1028x768上,当不同大小的平板电脑推出时,您将不得不制作大量的站点示例并检测用户代理,这非常耗时且难以维护。当出现这种情况时,通常会重建为响应式站点,这本来就应该是第一步。

本地技术原因:我希望该应用程序能够在一个平台上以我想要的方式运行,我需要访问专有和复杂的设备功能。该应用程序需要执行非常复杂的操作,使用大量内存,并且具有许多自定义UI控制器。(一些类别包括:3D游戏、像CNN iReport这样的重型UGC应用程序以及许多实用程序)

本地产品原因:请记住,作为一个产品人员,您处理预算时几乎总是有限的。当我说本地仅适用于3D游戏时,我完全理解您也可以将其用于更简单的应用程序,但它成本更高、不太可扩展,而在公司的小预算中处理时通常没有意义。如果您擅长编写应用程序,请随便选择本地语言,因为成本只是时间。话虽如此,以下是我使用本地应用程序的主要原因:

本地应用程序赚更多的钱,很多钱。无论您是大型出版商还是小型开发人员提供应用内购买,苹果的生态系统都能在许多方面为您效力。作为大型出版商,广告商会乐意为您创建可口可乐VH1音乐奖应用程序并支付开发费用(在大多数情况下!)如果您仅向他们提供定制移动网站上的几百万印象,他们可能甚至不会回应(混合方法通常是解决此问题的聪明桥梁)。作为小型开发人员,苹果将为您处理付款,教会所有用户如何轻松地在应用程序中购买物品(这就是您进入并出售价值10,000点的10美元的地方),是的,他们会收取费用,但是您已经有了分销,并且可以在发布产品后很少努力获得支票。

这个应用程序需要像梦一样完美地呈现每一个像素的细节和动画。也许这是一个杂志类应用,他们不会容忍任何页面卡顿,因为他们认为应用程序出错了,他们的设计师会过度苛刻地追求每一个失位的像素。这适用于大多数旨在控制用户体验各个方面的高端品牌项目。这并不是件坏事,但很少有人做得好。

这个应用程序需要处理大量来自用户的内容,并处理许多专有的CMS系统,或者说这个应用程序本质上是某种平台。

这个应用程序是一种定制体验,它需要使用手机的处理器执行核心功能,并且需要接入操作系统生态系统,例如,许多实用工具(例如Android上的应用程序关闭器)。

你不关心移动网页或者除了你正在开发的平台之外的其他平台。你的一部分用户可能无法访问你的应用程序,你对此感到舒适。

简而言之,这三点都非常有用,当你想要使用它们时,需要从技术、产品、业务和设计的角度进行仔细的思考。


6
我主要从事本地Android开发,但我也帮助调试了一些使用“交叉编译”平台(如PhoneGap)创建的应用程序。这些交叉编译的应用程序有一些小问题,如果您构建本机应用程序,则最好让平台为您处理这些问题。
例如,我最近调试的一个应用程序没有实现返回按钮事件处理程序,这是非常不舒服的用户体验。在本机Android应用程序中,我认为iOS也是同样的情况,系统会为您处理返回按钮按下事件,因为它知道当前活动之前正在运行的活动,并可以重建其UI。在PhoneGap中,它基本上是一个包装在Android应用程序中的Webkit浏览器,因此它无法访问像后堆栈这样的内容。
如果您记住系统不会为您处理这些类型的事件,并且您不需要访问手机上的所有传感器,则可能可以使用其中一个框架。

2
"PhoneGap非常成熟且得到良好支持。您最终将使用jQuery Mobile开发应用程序,并使用CSS进行设计。请查看此jQuery Mobile gallery。所有这些“网站”都可以使用PhoneGap制作成“应用程序”。
但是,要将应用程序编译和部署到iPhone和AppStore中,您仍需要苹果开发者帐户。"

1

您可以使用跨平台框架。如果您想要本地应用程序,则可以选择Titanium框架。或者,如果您想要移动Web应用程序,则可以选择提供跨平台框架的PhoneGap框架。这将是一个混合应用程序。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接