我需要为iOS和Android创建一个移动应用程序(所以2个应用程序)。该应用程序将使用一些本机移动功能,许多功能与显示静态/动态信息有关。我打算在Web应用程序上移动信息,只需将网页(HTML5)嵌入到移动应用程序中(基本上可以调用网址和显示信息)。
这是开发移动应用的常用方法吗?或者以下混合方法可能存在问题?本机应用程序优于混合应用程序(反之亦然)
由于 哈拉
答案 0 :(得分:25)
有趣的是我经常被问到或谈论这个具体问题。以下是我对此事的基本感受:
HTML 5,混合HTML 5 / Native和Native应用程序都是好的,几乎可比较的选项,选择的是一个不同的故事。
以下是我可能会选择其中一个原因的一些原因,既然你们正在帮我理解编程世界,那么我会摒弃产品(我主要做的)对市场定位和业务方面的看法事情。
HTML 5技术推理:我需要此应用程序几乎可以在用户可以拥有的任何设备上运行,此应用程序不会使用任何专有或复杂的设备功能(上传照片,触发推送通知)。 ..)。
HTML 5产品推理:HTML 5可以通过两种方式大幅降低开发成本。 (1)有一个更大的人才库(因此成本更低)竞争标准的前端工程项目,如HTML 5开发人员,而iOS和Android开发人员指定严重的溢价,很难得到和(2)你只需要建立它一次,它更容易维护,qa和设置分期副本。
此外,您不必处理部分收入的应用商店。这方面的典型例子是英国“金融时报”(FT)最近所做的事情。英国“金融时报”通过昂贵的订阅赚钱,大多数银行家都是由各自的银行购买的。因此,他们拥有忠诚,俘虏和价格不敏感的受众,他们的主要收入来源几乎完全来自订阅。当他们在Apple App商店购买应用程序时,他们无法证明向苹果赠送30%的新用户是不合理的。他们退出了应用程序商店,并构建了一个最全面和最令人印象深刻的Web应用程序,感觉非常像一个应用程序,适用于几乎所有支持Java的手机,并允许他们从订阅者那里收钱。在开发社区中,他们为这个网站赢得了很多赞誉(你可以在手机上查看,我认为它是www.ft.com),并通过创新者提高了他们的品牌知名度。游戏,设置,匹配。
HTML 5的最大好处是,您不需要处理应用商店。这意味着你的双手并没有束缚,你也可以动态改变事物,允许更多的迭代和更好的产品形成比提交给Apple并且等待两周你想要做的每一个增强更快(这个在混合方法中也有所缓解。在ABC新闻管理HTML 5平板电脑网站后,至关重要的是我们能够在新闻行业中快速解决问题,使这种方法非常适合这类应用。
混合HTML 5 /本机技术推理:我希望此应用程序在尽可能多的平台上运行,但我会交换其中一些以便访问专有和复杂的设备功能一些受欢迎的。我也很满意这样一个事实,即设计可能并不总是像素完美,并且偶尔会出现迟缓的情况。
混合HTML 5 /原生产品推理:如果我的应用需要至少在iOS / Android上运行,那么这种体验不需要完全自定义且需要成为应用程序商店中的应用程序,因为坦率地说,广告商对购买应用程序感到兴奋,而移动网络几乎不在他们的视线之内,混合方法可能是我最好的候选人。 就像HTML 5一样,构建一个移动网站要便宜得多,然后雇佣一个本地开发人员在iOS / Android / Windows上为你构建一个快速的app包装器。除此之外,您需要做的就是调整HTML部分,创建一个新实例,并将移动网站作为奖励!
其中一个危险是,如果HTML 5没有某种响应或被锁定为320x480和1028x768,因为不同大小的平板电脑问世,你将不得不制作大量的网站实例并检测使用者,这是一个耗时和维护噩梦。当发生这种情况时,它通常只是作为一个响应式站点重建,它应该是最初的。
原生技术推理:我希望这个应用程序在我想要的方式上在一个平台上运行,我需要访问专有和复杂的设备功能。此应用程序需要执行非常复杂的操作,使用大量内存,并且是具有许多自定义UI控制器的非常自定义的应用程序。 (一些类别包括:3D游戏,重型UGC应用程序,如CNN iReport和许多实用程序)
原生产品推理:请记住,作为一个产品人,您处理预算和资源几乎总是有限的。当我上面说Native只适合3D游戏时,我完全理解你可以将它用于更简单的应用程序,但它更昂贵,可扩展性更低,而且当处理公司的小预算时,它通常不会。有道理。如果您非常擅长编写应用程序,那么无论您选择哪种方式都可以使用本机,这是您的权利,因为所有成本都是您的时间。也就是说,这是我使用Native应用程序的主要原因:
原生应用赚更多钱。更多的钱。无论您是大型发布商还是小型开发者在应用内购买,Apple的生态系统都能以多种方式为您服务。作为一家大型发布商,广告客户将抓住机会创建可口可乐VH1音乐奖应用,并在大多数情况下为您支付开发费用!如果您试图在自定义移动网站上为他们提供几百万次展示,他们可能甚至无法做出响应(混合方法通常是解决此问题的聪明桥梁)。作为一个小型开发者,Apple为您处理付款,向所有用户讲授他们在应用程序中购买东西是多么容易(这是您进入并以9.99美元的价格向用户出售10,000个Valor积分)并且是的,需要减少他们遇到了麻烦,但是你已经开始分发,并且在发布产品后很快就会开始接受检查。
应用程序需要像素完美,像梦一样动画。也许这是一个杂志的应用程序,他们不会容忍任何页面滞后因为他们认为应用程序被破坏,他们的设计师会在任何不合适的像素上追捕你。这适用于大多数想要控制用户体验各个方面的高端品牌的项目。这不是一件坏事,但很少看到它做得很好。
该应用程序需要处理来自用户的大量内容并处理大量专有CMS系统,或者该应用程序本质上是某种平台。
该应用程序是一种自定义体验,需要大量的手机处理器,需要连接到操作系统生态系统来执行其核心功能,例如,许多实用程序(想想android上的appkillers)。
您不关心移动网络或其他平台,而不是您正在开发的平台。您的一部分用户可能无法访问您的应用,并且您对此感到满意。
TL:DR所有三个都非常有用,当您想要使用它们时,需要从技术,产品,业务和设计角度仔细考虑。
答案 1 :(得分:6)
我主要完成原生的Android开发,但我也帮助调试了一些使用“交叉编译”平台创建的应用程序,如PhoneGap和交叉编译的应用程序有一些怪癖,这是很好的如果您构建本机应用程序,只需让平台处理。
例如,我最近调试的其中一个没有实现后退按钮事件的处理程序,这是一个非常不舒服的用户体验。在原生的Android应用程序中,我认为它对iOS来说是相同的,虽然我从未尝试过为iO构建,但系统会为您处理后退按钮,因为它知道在当前的Activity之前运行了什么Activity并且可以重建它的UI 。在PhoneGap中,它本质上是一个包含在Android应用程序中的webkit浏览器,因此它无法访问像Backstack这样的东西。
如果您记住系统不会为您处理这类事件,并且您不需要访问手机上的所有传感器,那么您可能会使用其中一个传感器框架
答案 2 :(得分:2)
PhoneGap非常成熟且得到很好的支持。您将最终在jQuery mobile中开发您的应用程序并使用CSS进行设计。看看this jQuery Mobile gallery。所有这些“网站”都可以使用PhoneGap制作成“应用程序”。
您仍然需要Apple Developer帐户来编译和部署iPhone和AppStore的应用程序。
答案 3 :(得分:1)