2012-02-02 79 views
8

我需要为iOS和Android(所以2个应用程序)创建一个移动应用程序。该应用将使用一些原生移动功能,并且许多功能与显示静态/动态信息有关。我计划移动网络应用程序的信息,并简单地将网页(HTML5)嵌入到移动应用程序中(基本上调用网址和显示信息)。Hybrid vs Native Mobile应用程序

这是开发移动应用程序的常用方法吗?或者可能存在以下混合方法的问题?是否有过混合动力的应用程序(反之亦然)

感谢 卡迈勒

+0

在移动世界中,像本地应用程序,网络应用程序和混合应用程序这样的术语很常见,但有什么不同?这里有一点解释。 http://markupjavascript.blogspot.in/2013/11/native-apps-web-apps-hybrid-apps-what-is-the-difference.html – 2013-11-15 16:33:32

回答

6

我主要完成原生Android开发,但我也帮助调试了一些使用PhoneGap等“交叉编译”平台创建的应用程序,交叉编译的应用程序有一些怪癖,它很好如果您构建本机应用程序,只需让平台为您处理即可。

例如,我最近调试的一个没有为后退按钮事件实现处理程序,这是一个非常不舒服的用户体验。在原生Android应用程序中,我假设它与iOS相同,尽管我从未尝试过构建iOs,但系统会为您处理后退按钮,因为它知道当前运行的Activity是什么,并且可以重建它的UI 。在PhoneGap中,它本质上是一个封装在Android应用程序中的webkit浏览器,所以它无法访问像后台堆栈之类的东西。

如果您记住系统不会为您处理这些类型的事件,并且您不需要访问电话上的所有传感器,那么您可能会使用其中一个这些框架

1

您可以使用跨平台的框架,本机应用程序的优势。如果你想本地,那么你可以去Titanium框架。或者如果你想要移动webapp,那么你可以去提供跨平台框架的PhoneGap框架。这将是一个混合应用程序。

2

PhoneGap是非常成熟和良好的支持。您将最终在jQuery mobile中开发您的应用程序,并使用CSS进行设计。看看this jQuery Mobile gallery。所有这些“网站”都可以使用PhoneGap制作成“应用程序”。

尽管如此,您仍然需要一个Apple Developer帐户来编译和部署您的iPhone和AppStore应用程序。

25

有趣的是,我经常被问到或谈论这个具体问题。这里是我对此事的基本感受:

HTML 5,混合HTML 5 /原生和本机应用程序都是很好的,几乎可比的选项,但选择什么是一个不同的故事。

以下是我可能选择其中一个原因的一些原因,既然你们正在帮助我理解编程世界,我会抛开产品(我主要做的)对市场定位和业务方面的看法的东西。这个应用程序不会使用任何专有或复杂的设备功能(上传照片,触发推送通知...)。我需要此应用程序在用户可能拥有的几乎任何设备上运行,这个应用程序不会触及任何专有或复杂的设备功能(上传照片,触发推送通知...)。

HTML 5产品推理:HTML 5可以通过两种方式大幅降低开发成本。(1)较大的人才库(因此成本较低)竞争HTML 5开发人员等标准前端工程项目,而iOS和Android开发人员则要求很高的奖金并且难以获得,(2)您只需构建它一次,它更容易维护,qa和建立分期副本。

此外,您不必处理应用商店的部分收入。这就是“金融时报”(FT)最近做的一个典型例子。英国“金融时报”通过昂贵的订阅来赚钱,大多数银行家都是通过各自的银行购买的。因此,他们拥有忠诚,专属且价格不敏感的受众群体,其主要收入来源几乎全部来自订阅。当他们在苹果应用程序商店上有他们的应用程序时,他们不可能将30%的新订户赠与苹果。他们放弃了应用商店,并构建了一款最全面和令人印象深刻的网络应用程序,其感觉非常像一款应用程序,几乎可以在任何支持Java的手机上使用,并允许他们从订阅者那里获得资金。在开发社区,他们对这个网站获得了很多赞誉(你可以在手机上查看它,我认为它的www.ft.com),并通过创新者提高了品牌知名度。游戏,设置,匹配。

HTML 5的最终巨大优势在于您无需处理应用商店。这意味着你的手不受束缚,你也可以随时改变事物,允许更多的迭代和更好的产品形成比提交给苹果更快,并等待两个星期,你想要做的每一个增强(这是有点在混合方法中也得到缓解)。在ABC新闻网站管理HTML 5平板电脑网站后,我们能够在新闻行业以非常快的速度解决问题,这一点非常重要,使得这种方法非常适合这种类型的应用。

混合HTML 5 /本地技术推理:我想这个应用程序运行在尽可能多的平台可能的,但为了获得在几个流行的对私有和复杂的设备功能,我会交易他们中的一些。我也很满意这样一个事实,即设计可能并不总是像素完美的,并且偶尔会出现低迷的可能性。

混合HTML 5 /本机产品推理:如果我有一个应用程序需要至少在iOS/Android上,是不是需要完全自定义的应用程序,并且需要成为应用程序中的应用程序因为坦率地说,广告商对购买应用程序感到兴奋,而移动网络几乎没有受到他们的关注,混合方法可能是我最好的选择。 仅与HTML 5类似,构建一个移动网站便宜得多,然后聘请一位本地开发人员为您在iOS/Android/Windows上构建一个快速应用包装。除此之外,您需要做的只是调整HTML部分,创建一个新实例,并且您有一个移动网站作为奖励!

这里的一个危险是,如果HTML 5没有多少响应或被锁定到320x480和1028x768,因为不同大小的平板电脑出来,您将不得不制作大量的网站实例并检测useragent,这是非常耗时和维护的噩梦。当发生这种情况时,它通常会被重建为一个响应站点,它本应该放在首位。

原生技术推理:我希望这个应用程序能够完全按照我想要的方式在一个平台上运行,我需要访问专有和复杂的设备功能。这个应用程序需要执行非常复杂的操作,使用大量内存,并且是一个具有许多自定义UI控制器的非常自定义应用(几个类别包括:3D游戏,重UGC应用程序,如CNN的iReport和许多实用工具)

土产推理:请记住,当你处理预算和资源几乎总是在最有限的产品的人。当我在上面说Native只对3D游戏有用时,我完全理解你也可以将它用于更简单的应用程序,但它更昂贵,可扩展性更差,并且在处理公司的小预算时通常不会使感。如果您擅长编码应用程序,那么无论您选择何种方式,都尽可能采用本地方式,这是您的权利,因为您所花费的所有时间都是您的时间。也就是说,这里是我使用Native应用程序的主要原因:

原生应用程序赚钱更多。有更多的钱。无论您是大型发行商还是小型开发商,都可以在应用内购买产品,苹果的生态系统可以通过多种方式为您服务。作为一家大型出版商,一位广告客户将有机会创建可口可乐VH1音乐大奖应用,并在大多数情况下为其开发付费!如果您试图在自定义移动网站上为他们提供几百万次展示,他们可能甚至不会回复(混合方法通常是解决此问题的巧妙桥梁)。作为一个小开发者,苹果公司为你处理付款,告诉他们所有的用户它们在应用中购买东西是多么容易(这是你进入并以9.99美元的价格向用户销售10,000 Valor积分),是的,需要削减他们的麻烦,但你有发行,并设置为在发布你的产品后以很小的努力开始获得支票。

该应用程序需要像素完美和动画像一个梦。也许这是一本杂志的应用程序,他们不会容忍任何页面滞后,因为他们认为应用程序已损坏,而且他们的设计师会在任何不合适的像素上追究你的死亡。这可以应用于大多数想要控制用户体验的每个方面的高级品牌的项目。这不是一件坏事,但它罕见地表现得很好。

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

该应用程序是一种自定义体验,需要大量手机处理器,并且需要挂载到操作系统生态系统中才能完成其核心功能,例如许多实用程序(在Android上认为appkiller)。

你不关心移动网络或其他平台,而不是你正在开发的平台。您的一部分用户可能无法访问您的应用,并且您对此感到满意。

TL:DR所有这三项都非常有用,当您想要使用它们时,需要从技术,产品,业务和设计角度仔细考虑。

相关问题