移动应用,原生?Web?混合式?

http://www.toutiao.com/i6409944697724207618/


移动应用,原生?Web?混合式?

近些年,随着移动互联网和移动设备的普及,基于原生环境的移动端开发方兴未艾。同时,Web开发者也不甘寂寞。基于移动端浏览器开发可自适应多屏幕的Web应用自然而然地出现了,各类已有网站迅速被移动化了。此时的Web开发者和移动端原生开发者还算是泾渭分明,各自在各自擅长的领域辛勤搬砖。一个弄网站,一个弄APP。

最近两三年,两者之间的界限开始被打破。当然,此类苗头和尝试出现得要更早。只是从15年开始,手机硬件的性能发展到了某种程度。这种程度足够帮助Web开发者向原生的移动端开发者发起有威胁的挑战,这种挑战的载体就是混合式APP。下面来一起看看原生APP、Web App、混合式APP(Native Apps, Web Apps, Hybrid Apps)。

APP开发的世界是一个令人兴奋的,但有时令人困惑的地方。应该选哪个类型的应用程序没有明确的答案。你的选择将取决于你的技能、预算和时间要求,还有对不同类型的应用程序的理解。

当我们开始考虑开发APP的时候,要考虑一堆技术成本。iOS和Android有什么区别?原生、Web、混合的APP到底是什么?更重要的,哪个才是最适合你,以及你的APP的?

基本概念

就目前而言,大多数移动设备都使用了两个主要操作系统之一:Google开发的Android(48.3%)和苹果开发的iOS(41%)。 这些操作系统及其相关设备之间的区别不仅仅是美观:就像MacBook不会运行Windows应用程序一样,Android手机至少不能运行为iPhone构建的应用程序。随着智能手机的兴起,显然我们喜欢APP。谷歌和苹果占主导地位,在可预见的未来内这并不会改变。

原生APP

当说到APP,通常想到的应该是原生APP。你可以从苹果的App Store、谷歌的Google Play、国内各种Android应用商城下载,然后点击图标来启动。原生APP是针对特定类型的设备进行设计和编码的。iPhone的APP是用Objective-C,Android的APP用JAVA编写。 每个移动平台为开发人员提供自己的开发工具,界面元素和标准化SDK。这可以让任何专业开发人员相对容易地开发一个原生APP。以这种方式编写应用程序有很多优点:他们为用户提供最快,最可靠和最响应的体验。

他们可以直接利用设备的更广泛的功能,包括相机,麦克风,罗盘,加速度计和滑动手势。发布商可以利用推送通知,每当新的内容发布或需要注意时,都会提醒用户。 这是一个关键的参与方式。 你有机会不断吸引更多观众回来。

如果原生APP设计良好,尊重每个平台的设计模式和标准,得到的好处不仅仅是直接访问设备的功能而已。它超越了Android上的左对齐标题,而iOS上的中心对齐标题,超越了每个平台上的用户交互设计有几百个小的差异。 换句话来说,原生APP意味着应用体验直观,可以充分利用所在平台生态系统的支持,比较容易创建应用体验较好的APP。

原生APP的主要缺点是它不适用于其他类型的设备。 如果您在Objective-C中为iOS编写应用程序,则不会在Android上运行。当构建多个平台时,因此开发本机应用程序可能相当昂贵,因为需要构建和维护多个单独的应用程序版本以适配不同的平台。对于开发人员来说,专门研究一个平台也是很常见的。因此,你需要准备多套人马。

如果预算允许,原生APP是理想的,提供最佳的用户体验。

Web APP

Web APP有时被设计成类似原生APP一样的外观和行为。这样做的目的有时候仅仅是因为原生APP不是很合适或太贵。

Web APP使用JavaScript,CSS,HTML5或其他语言。开发人员没有标准化的SDK需要访问。开发Web APP简单快捷,但是它们的简单性也是它们的缺点。

有一些Web APP的推崇者坚持认为Web APP与原生APP相同甚至更好。他们看重了成本和功能方面的灵活性。同事没有依赖于某种类型的硬件。

Web APP的功能有限,他们通常需要联网才能正常工作。它们更慢,直观性更差。Web APP为所有平台设计一次,因此在不同的平台上的交互和UI体验不能期待表现地就像是那个平台上的原生APP一样(需要一样吗?)。

Web APP更难建立忠实的用户群。除非用户将其保存为书签,否则Web APP不会在主屏幕上找到对应的图标。即便保存为书签,也无法做到不断的提醒消息提醒。作为开发人员或发布商,你无法向用户发送通知以将其带回你的应用。很难互动。

此外,Web APP会失去一个重要的下载来源。原生APP和混合APP都可以在应用商城中被搜索和下载。直接影响到APP的运营推广。

混合式APP

移动应用,原生?Web?混合式?

鉴于原生APP和Web APP之间的就是混合APP。通常比原生APP创建更快、更便宜,能比Web APP预期地更多。混合APP是两个世界最好的吗?混合APP的大部分是使用兼容的网络技术(如HTML5,CSS和Javascript)构建的,与用于编写Web应用程序的语言相同。同时通过本地代码来访问设备的硬件功能,能产生更精细的用户体验。对于原生APP只使用原生代码而言,这种方法的优点是显而易见的:只有本地代码必须重新编写就能使应用在的不同类型的设备上工作。

混合APP的优势在于它更快,更容易开发。维护也更容易,更改或增加平台的成本小。混合APP不会像本机应用程序一样快,因为混合APP都是基于各个平台的WebView组件,也就是要取决于各自平台对网页的解析性能,也就是各自平台自带浏览器的性能。混合APP领域有两个主要的玩家:Phonegap/Cordova和Appcelerator Titanium。 你可以创建HTML/CSS/Javascript本地文件,将应用设计和构建为网站,然后使用Cordova/Titanium将其包装到移动应用程序中。

目测,目前Phonegap/Cordova更流行。

让混合APP在每个平台上正常运行通常需要大量工作。在某些情况下,总成本可能与完全本地应用程序相当,从而使成本效益可以忽略不计。这一切都取决于你想要获得“原生用户体验”的距离或应用的难易程度。比如视频类应用就不太适合用混合APP。新闻类应用就特别合适。

不过,混合APP有一个很大的优势。建立在一个单一的基础上添加新功能,只要不涉及调用本地设备的硬件功能,多个版本的应用程序就能直接受益。相反,使用原生APP,对于要增加的每个新功能,该功能将必须在每个平台上进行复制。

混合APP的技术方案需要重点解决的关键问题是页面代码与操作系统(原生代码或接口)之间的交互问题。其次要考虑一个高性能的JS工具或组件库。

什么是最好的?

不要骂我,这其实没有标准答案。这完全取决于你。没有一个适合所有人的完美答案。为你找到正确的应用程序可能是具有挑战性的。考虑您的主要目标、受众需求、开发人员的技能等等。

不过还是可以提一些参考。比如一个传统的有前台工程师的、擅长后台的项目开发团队,就可以选择混合式APP。新闻类、电商类采用混合APP是可行的,视频类和工具类(如输入法)更适合原生APP。曾经做过一个司法类APP,核心功能是通知发布和位置监控。前者用HTML做没问题,后者需要调用设备的硬件能力。另外iOS在锁屏、后台运行等场景下的实时位置发送是个难题。Android也有类似问题,必须通过原生代码来解决。所以混合式APP比较适合。


关于Phonegap/Cordova

移动应用,原生?Web?混合式?

Phonegap是Nitobi Software公司创建的,2011年被Adobe收购,然后被开源给Apache。之后从Phonegap中抽出核心代码,即Phonegap的核心引擎,即为Cordova,作为apache的顶级项目。

HBuldier/MUI

移动应用,原生?Web?混合式?

移动应用,原生?Web?混合式?

目前国内在混合APP解决方案上,难得地有一些建树。目前来说做的最好的是DCloud(数字天堂)。他们推出的解决方案包括:IDE(HBuilder,基于Eclipse)、页面与硬件设备的交互能力(5+Runtime)、页面框架(MUI)、创新(流应用)。这套解决方案目前已经比较成熟,并且开始逐渐形成了生态链。有培训机构在做HBuilder/MUI的培训,甚至淘宝上也能搜到一些HBuilder教程,改天我们再详细来谈谈。 最后套用一句广告词,表扬一下DCloud:我们一直用它


猜你喜欢

转载自blog.csdn.net/yethyeth/article/details/72891665
今日推荐