Hybrid与Native Mobile应用程序

Kam*_*mal 8 iphone mobile android

我需要为iOS和Android创建一个移动应用程序(所以2个应用程序).该应用程序将使用一些本机移动功能,许多功能与显示静态/动态信息有关.我打算在Web应用程序上移动信息,只需将网页(HTML5)嵌入到移动应用程序中(基本上可以调用网址和显示信息).

这是开发移动应用程序的常用方法吗?或者以下混合方法可能存在问题?原生应用程序优于混合应用程序的优势(反之亦然)

谢谢卡迈勒

小智 25

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

HTML 5,混合HTML 5/Native和Native应用程序都是好的,几乎可比较的选项,选择的是一个不同的故事.

以下是我可能会选择其中一个的一些原因,既然你们正在帮助我理解编程世界,我会抛出产品(我主要做的)对市场定位和业务方面的看法.

HTML 5技术推理:我需要这个应用程序几乎可以在用户可以拥有的任何设备上运行,该应用程序不会使用任何专有或复杂的设备功能(上传照片,触发推送通知......).

HTML 5产品推理:HTML 5可以通过两种方式大幅降低开发成本.(1)有一个更大的人才库(从而降低成本)标准的前端工程项目,如HTML 5个开发者竞争,而iOS和Android开发者指挥严重的溢价是很难得的;(2)你只需要构建它一次,它更容易维护,qa和设置分期副本.

此外,您无需处理部分收入的应用商店.这方面的典型例子是英国"金融时报"(FT)最近所做的事情.英国"金融时报"通过昂贵的订阅赚钱,大多数银行家都是由各自的银行购买的.因此,他们拥有忠诚,俘虏和价格不敏感的受众,他们的主要收入来源几乎完全来自订阅.当他们将应用程序放在Apple App商店时,他们无法证明向Apple提供30%的新用户是合理的.他们退出了应用程序商店,并构建了一个最全面和最令人印象深刻的Web应用程序,感觉非常像一个应用程序,适用于几乎任何支持Java的手机,并允许他们从订阅者那里收钱.在开发社区中,他们为这个网站赢得了很多赞誉(你可以在手机上查看,我认为它是www.ft.com),并通过创新者提高了他们的品牌知名度.游戏,设置,匹配.

HTML 5的最大好处是,您不需要处理应用商店.这意味着你的手没有太大的关系,你也可以在运行中改变的东西,可以让更多的迭代和更好的产品不必提交给苹果,并等待两个星期要尽增强形成更快(这是有点在混合方法中也有所缓解).在ABC新闻管理HTML 5平板电脑网站之后,我们能够在新闻行业中快速解决问题至关重要,这使得这种方法非常适合这类应用.

混合HTML 5/Native技术推理:我希望这个应用程序在尽可能多的平台上运行,但我会交换其中的一些,以便在一些流行的平台上访问专有和复杂的设备功能.我也很满意这样一个事实,即设计可能并不总是像素完美,并且偶尔会出现迟缓的可能性.

混合HTML 5 /原生产品推理:如果我的应用程序需要至少在iOS/Android上运行,那么这种体验不需要完全自定义并且需要成为应用程序商店中的应用程序,因为坦率地说,广告客户对购买应用程序感到兴奋,而移动网络几乎不在他们的视线中,混合方法可能是我最好的候选人.就像HTML 5一样,构建一个移动网站要便宜得多,然后聘请一个本地开发人员在iOS/Android/Windows上为你构建一个快速的app包装器.除此之外,您需要做的就是调整HTML部分,创建一个新实例,并将移动网站作为奖励!

这里的危险之一是,如果HTML 5没有一定程度的响应或锁定到320x480和1028x768,因为不同大小的平板电脑问世,你将不得不制作大量的网站实例并检测使用者,这是耗时的和一个维持噩梦.当发生这种情况时,它通常只是作为响应式站点重建,它本来应该是首先.

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

原生产品推理:请记住,作为一个产品人,您处理预算和资源几乎总是有限的.当我说上面本土仅用于3D游戏好,我完全理解,你可以用它来简单的应用程序一样好,但它更便宜,更可扩展性和在一家公司的小预算打交道时往往不会使感.如果您非常擅长编写应用程序,那么无论您选择哪种方式,都要以原生为主,这是您的权利,因为所有成本都是您的时间.也就是说,这是我使用Native应用程序的主要原因:

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

该应用程序需要像素完美和像梦一样的动画.也许这是一个杂志的应用程序,他们不会容忍任何页面滞后,因为他们认为应用程序被破坏,他们的设计师将在任何不合适的像素上猎杀你.这适用于大多数想要控制用户体验各个方面的高端品牌的项目.这不是一件坏事,但它很少见得好.

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

该应用程序是一种定制体验,需要大量的手机处理器,需要连接到操作系统生态系统来完成其核心功能,例如,许多实用程序(想想android上的appkillers).

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

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


小智 6

我主要完成原生Android开发,但我也帮助调试了一些使用"交叉编译"平台创建的应用程序,如PhoneGap和交叉编译的应用程序有一些怪癖,很高兴让它如果您构建本机应用程序,则为您提供平台句柄.

例如,我最近调试的其中一个没有实现后退按钮事件的处理程序,这是一个非常不舒服的用户体验.在原生的Android应用程序中,我认为它对iOS来说是相同的,虽然我从未尝试过为iO构建,但系统会为您处理后退按钮,因为它知道在当前的Activity之前运行了什么Activity并且可以重建它的UI .在PhoneGap中,它本质上是一个包含在Android应用程序中的webkit浏览器,因此它无法访问backstack之类的东西.

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