native APP,hybrid APP和web APP

<1>native APP,hybrid APP和web APP三者的区别

随着智能手机的普及,移动端应用几乎成为每一个互联网产品的标配。在快速迭代的互联网战场中高效开发、低成本上线产品,是每一个应用开发团队追求的目标。此时,选择合适的应用类型和开发模式便相当重要。移动应用能够粗分为三种:原生应用(native app), 网页应用(web app,或HTML5 app),以及它们的混血儿——混合模式移动应用(hybrid app)。今天的博文就来和你们简单聊聊近年来蓬勃发展的hybrid app。
 css

Source: http://s3.rainmaker-labs.com/wp-content/uploads/Mobile-hybrid-app1.jpghtml

1、什么是Hybrid Mobile App

Hybrid app从外观上来看是一个native app,实则只有一个UIWebView,里面访问的是一个web app,如新闻类和视频类的应用广泛采起该策略:native的框架加上web的内容。不一样于native app须要针对不一样的平台使用不一样的开发语言(如使用Objective-C、Swift开发iOS应用,使用Java等开发Android应用,使用C#开发Windows Phone应用),hybrid app容许开发者仅使用一套网页语言代码(HTML5+CSS+JavaScript),便可开发可以在不一样平台上部署的类原生应用 。因为hybrid app结合了native app良好用户交互体验和web app跨平台开发的优点,可以显著节省移动应用开发的时间和成本,hybrid app获得愈来愈多公司的青睐。
 前端

Source: Native, HTML5, or Hybrid: Understanding Your Mobile Application Development Optionsjava

按照网页语言和程序语言的混合,hybrid app一般能够分为三种类型:android

  1. 多View混合型:native view和web view独立展现,交替出现。 其应用主体一般是native app,web技术做为补充。即在须要的时候,将web view做为独立的view运行,在web view内完成相关的展现操做。开发难度与native app至关。举个栗子:Instagram的timeline使用的是web view。
  2. 单View混合型:在同一个view内,native view和web view为层叠关系,同时出现。开发成本较高,难度较大,可是体验较好。举个栗子:百度搜索同时实现充分的灵活性和较好的用户体验。
  3. Web主体型:应用主体是web view,穿插native功能,主要以网页语言编写。总体开发难度低,基本能够实现跨平台;而用户体验好坏,主要取决于底层中间件的交互与跨平台能力。举个栗子:项目管理工具 Basecamp使用web view呈现内容,调用系统原生API实现界面导航等功能来提升用户体验。


Hybrid app也并不是是完美的解决方案。因为其使用HTML5,某些依赖于复杂的原生功能或者繁重的过渡动画的应用会出现卡顿;同时,为了模拟native app的UI和感官,须要投入额外的时间和精力;尽管能够跨平台,可是并不能彻底支持全部的设备和操做系统;最后,若是应用的体验不够原生化,如一个简单的网站,则还有被Apple App Store拒绝的风险。css3

2、 何时选择Hybrid App

在hybrid app备受追捧的今天,咱们也许会随大流优先考虑开发hybrid app。可是,每一个产品各具特点,尚未哪种解决方案能够完美地应万变。hybrid app的中庸让它大放异彩,也限制了它的应用场景 。在决定采用一种开发模式以前,有许多因素须要考虑,诸如:web

  • 你但愿针对哪一个平台作开发?
  • 你但愿经过应用商店发布应用么?
  • 你但愿利用手机特有的性能么?
  • 你的团队技术能力如何?
  • 你的项目周期和预算是多少?


若是要设计Angry Birds一类对图形要求很高的游戏,那么在暂不考虑技术团队能力的状况下,native app是最优选择;若是要设计如Yelp一类内容导向的应用,那么hybrid app会是很好的选择;若是项目时间紧张,没有足够的人手和资金,对图形和系统原生特性没有要求,那么web app将是性价比最高的解决方案。
表一对比了native app, hybrid app和web app在不一样方面的表现,能够帮助你根据实际状况选择最佳的解决方案。编程

InfoQ上高嘉峻的一篇文章分享了几个hybrid app开发的误区,也是开发过程当中应该尽可能避免的:小程序

  1. 为了HTML5而hybrid app:HTML5是HTML4.0.1和XHTML1.0的升级版,有更强大的表现功能,并加入了local storage等技术,为web页面提供了更大的想象空间和更多的可能性。可是,做为发展中的技术,HTML5收到浏览器兼容性和手机硬件水平的影响,能提供的功能和native app扔有必定的差距。开发应用时,首先是要知足用户需求,而不是追赶技术革新的大潮。因此开发应用时,应从应用自己功能和团队开发资源综合考量,决定是否采用hybrid app开发模式。
  2. 忽略关键因素:Web是基于PC的一种开发模式,而mobile app运行于移动端。一般,web开发者使用PC浏览器模拟app中的web view进行调试,而不是直接使用手机上的web view。 两者能支配的CPU资源,最大占有内存,运行网络环境,和鼠标/触控操做,浏览器对CSS/JS的解析和对事件的处理有着巨大的差异。而这些差异经常是web页面可否正常运行于app中的关键因素。
  3. 富交互致使体验差:这主要体如今两个方面:(1)web与手机平台默认交互习惯不一致:iOS和Android各有一套交互习惯,包括视觉风格,界面切换,操做习惯等。好比手机端系统风格是左右滑屏来进入或者退出界面,而旧界面保持状态;web则是默认不管加载仍是后退,都会刷新旧界面,形成体验上的损失。若是模拟native的交互方式,那么会提升开发成本,却也难以达到native的流畅性。(2)与native相比一样的功能在性能上存在差距:Web界面上JS对HTML Node的操做须要消耗大量的CPU资源。首先,手机的CPU性能广泛低于PC端;其次,不一样手机之间的硬件水平也良莠不齐,好比在iPhone6s上能够流畅运行的界面,在iPhone五、MX5上可能就没法达到一样的流畅度。
  4. 跨平台:Hybrid app的优点之一是继承web跨平台的特性。然而,在智能手机软硬件版本众多的今天,兼容性是个不容忽视的问题。不一样的安卓操做系统其浏览器内核对JS和CSS的解析、事件处理会有不一样;iOS不一样版本之间也存在较大差别。因此,在跨平台开发时,兼容性也是须要重点考虑的问题。
  5. 交互一致性:这里的一致性并不是指同一应用在不一样平台上的一致性体验,而是指在同一平台上,hybrid app和native平台的一致性。好比“返回”操做,在iOS平台上页面顶部留有一个44像素高的导航栏,左侧的返回按钮用于返回操做,能够经过绝对地址的方式连接到任何其它界面;而Android一般使用设备提供的返回键,返回上一个界面,若是自行配置平台返回按钮,那么它会和设备提供的返回键指向不一样的位置。

 

<2>区分三者

nativeapp是一个原生程序,通常运行在机器操做系统上,有很强的交互,通常静态资源都是在本地的。浏览使用方便,体验度高。在实现上要么使用Objecttive-c和cocoaTouch Framework撰写iOS程序,要么选择java+Android Framework撰写android应用程序。微信小程序

hybridapp是一个半原生程序,伪造了一个浏览器的apk/ipa原生程序,把地址写死了,而后里面运行了一个webapp。里面是WebView UI 。可是仍是运行在机器的操做系统上,交互较弱,资源通常在本地或者网络均可以。浏览体验度次之。

webapp是生存在浏览器里的应用,因此只能运行在浏览器里,宿主是浏览器,再也不是操做系统。资源通常都在网络上。说的根本点就是一个触屏版的网站

什么叫作原生App?
原生App是专门针对某一类移动设备而生的,它们都是被直接安装到设备里,而用户通常也是经过网络商店或者卖场来获取例如 The App Store 与 Android Apps on Google Play . 随便说几个原生App的例子,好比iOS 的 Camera+ 以及Android 的 KeePassDroid

什么叫作移动Web App?
通常说来,移动Web App都是都是须要用到网络的,它们利用设备上的浏览器(好比iPhone的Safari)来运行,并且它们不须要在设备上下载后安装。

什么是混合app?
Hybrid App是指介于web-app、native-app这二者之间的app,它虽然看上去是一个Native App,但只有一个UI WebView,里面访问的是一个Web App,好比街旁网最开始的应用就是包了个客户端的壳,其实里面是HTML5的网页,后来才推出真正的原生应用。再完全一点的,如掌上百度和淘宝客户端Android版,走的也是Hybrid App的路线,不过掌上百度里面封装的不是WebView,而是本身的浏览内核,因此体验上更像客户端,更高效。
综合一下就是:“Hybrid App同时使用网页语言与程序语言开发,经过应用商店区分移动操做系统分发,用户须要安装使用的移动应用”。整体特性更接近Native App可是和Web App区别较大。只是由于同时使用了网页语言编码,因此开发成本和难度比Native App要小不少。所以说,Hybrid App兼具了Native App的全部优点,也兼具了Web App使用HTML5跨平台开发低成本的优点。

Web App是指基于Web的系统和应用,运行在高端手机的网络和浏览器上,用网页技术开发实现特定功能的应用,对手机性能要求比较高。

Native App(原生开发):目前较为成熟,各大公司均采用此方式。可是其人工成本较高,同一个项目,至少须要Android端、iOS端、Web端三个开发团队。

Hybrid App(混合开发),基于第三方跨平台移动应用引擎框架进行开发。使用HTML5和JS做为开发,调用引擎封装的底层功能如照相机、传感器、通信录等。

拿酒来形象化这三种模式的话:

Web App就像白酒那样浑厚甘醇,度数高,但不适合任何人的口味,制形成本低,

Native App就是葡萄酒,分成白类型,对葡萄品质要求高,口味大众化,比较成熟,

Hybrid App就是鸡尾酒,混合了多种酒的优点,很是适合跨平台,是之后的一个App开发趋势。

 

<3>区分native APP ,web APP,hybrid APP

一、Native App

Native App是一种基于智能手机本地操做系统如iOS、Android、WP并使用原生程式编写运行的第三方应用程序,也叫本地app。通常使用的开发语言为JAVA、C++、Objective-C。
想建立Native App,开发者必须编写源代码,使用由操做系统开发商提供的工具,对源代码进行编译。代码编译以后以2进制或者字节码的形式运行在操做系统上,直接调用操做系统的Device API。
虽然不一样操做系统上进行的开发过程经常很类似,可是每一种移动操做系统都随带各自的独特工具。平台之间的这些区别致使了Native开发方法的最重大缺点之一:为一种移动平台编写的代码没法在另外一种平台上使用。Native App的优缺点总结以下:
优势

一、提供最佳的用户体验,最优质的用户界面,最华丽的交互
二、针对不一样平台提供不一样体验
三、下载到本地,可节省带宽成本
四、可访问本地资源
五、直接访问系统级API
六、操做速度更快
七、用户留存率高

缺点

一、移植到不一样平台上比较麻烦
二、须要维护多个版本
三、发布新版本须要经过store或market的确认
四、盈利须要与第三方分红
五、开发的成本比较大,须要针对不一样平台开发相应的版本
六、更新体验较差、同时也比较麻烦(每一次发布新的版本,都须要作版本打包,且须要用户手动更新,或一个让用户反感的提示)。

二、Web App

Web App是运行于网络和标准浏览器上,以HTML+JS+CSS等WEB技术开发实现特定功能的应用。经过浏览器来调用Device API,可是只有数量有限的这些API向浏览器里面运行的Web App公开。基于当下开始普及流行的HTML5,Web App能够实现不少本来Native App才能够实现的功能,,好比LBS的功能、本地数据存储、音视频播放的功能,甚至还有调用照相机和结合GPU的硬件加速功能。
因为它不依赖于操做系统,所以开发了一款Web App后,基本能应用于各类系统平台。而且还有版本升级容易的优点(毕竟服务器是受本身控制的)。可是这种方案的缺点也很明显——没法使用系统级API,只能作为一个临时的入口,用户很难留存。Web App的优缺点总结以下:
优势

(1)开发成本低;
(2)更新快;
(3)更新无需通知用户,不须要手动升级;
(4)可以跨多个平台和终端;
(5)维护比较简单。

缺点

(1)临时性的入口;
(2)没法获取系统级别的通知,提醒,动效等等;
(3)用户留存率低;
(4)须要依赖网络,体验较差。

三、Hybrid App

Hybrid App是一种用Native技术来搭建App的外壳,壳里的内容由Web技术来提供的移动应用,兼具“Native App良好交互体验的优点”和“Web App跨平台开发的优点”。
根据实现的不一样,能够细分为两种实现方案:
(1)在Native App中使用WebView加载远端Web资源

这种方案的Web资源放置在服务器上,开发者没必要经历提交和批准过程——有些App商店要求这个过程,就能够对App进行小幅更新。遗憾的是,这个方法摈弃了任何离线可用性,由于设备与网络没有链接时,没法访问设备。

(2)将一组HTML、JavaScript、CSS和媒体文件,封装到App代码中,存储在设备本地,使用Cordova/PhoneGap等框架经过WebView加载本地资源进行页面渲染

把Web代码封装到App里面在必定程度上缓解从远端加载静态资源致使UI展现延迟的问题,能够提升性能和可访问性,而且还能够经过桥接Native和Web来调用一些Device的API。
可是其劣势也很明显,一是不容许远程更新;二是安装包变大;三是若是想调用相关平台的API,须要针对平台单独进行开发,若是在应用中用到了大量的Device API,那么开发的效率将大大下降。

Hybrid App同时使用网页语言与程序语言开发,但其整体特性更接近Native App。只是由于同时使用了web语言编码,因此开发成本和难度比Native App要小不少。所以,Hybrid App兼具了Native App的优点,也兼具了Web App使用HTML5跨平台开发低成本的优点。

三种App之间的比较

特征 Native App Web App Hybrid App
适用场景 (1)偏操做互动多的工具类应用; </br>(2)须要访问特定的原生API;</br>(3)对速度要求较高。 (1)做为对非核心业务在移动端的入口补足;</br>(2)做为用户轻量、低频使用的体验加强;</br>(3)做为吸引用户安装Native App的引导页。 (1)Native App中提到的适用场景;</br>(2)须要频繁小幅度更新。
开发语言 只用native开发语言 native和web开发语言 只用web开发语言
开发成本
维护更新 复杂 简单 介于两者之间
体验
安装 须要 不须要 须要
升级灵活性 低</br>总经过应用商店来升级 中</br>web部分的升级不须要经过应用商店来完成
资源存储 本地 服务器 本地和服务器

 

参考文献:

  1. 闫晓芬, 郭银章. 基于移动Agent与P/S混合模式的分布对象中间件异步通讯研究[J]. 计算机工程与设计, 2008, (24).
  2. WebAPP与Native APP到底有什么区别
  3. http://www.uisdc.com/web-hybrid-native-app
  4. http://blog.jobbole.com/87834/?utm_source=blog.jobbole.com&utm_medium=relatedPosts
  5. http://blog.jobbole.com/95641/?utm_source=blog.jobbole.com&utm_medium=relatedPosts
  6. http://blog.jobbole.com/106157/?utm_source=blog.jobbole.com&utm_medium=relatedPosts


<4>选择哪一个作项目比较合适

 当前的APP开发模式注意有如下四大类型:

  • Native App

    即传统的原生APP开发模式,Android基于Java语言,底层调用Google的 API;iOS基于OC或者Swift语言,底层调用App官方提供的API。体验最后。

  • Web App

    即移动端的网站,将页面部署在服务器上,而后用户使用各大浏览器访问。通常泛指 SPA(Single Page Application)模式开发出的网站。体验最差。

  • Hybrid App

    即混合开发,由Native经过JSBridge等方法提供统一的API,而后用Html5+JS来写实际的逻辑,调用API,这种模式下,因为Android,iOS的API通常有一致性,并且最终的页面也是在webview中显示,全部有跨平台效果

  • React Native App

    Facebook发起的开源的一套新的APP开发方案,使用JS+部分原生语法来实现功能。初次学习成本较高,可是在入门后,通过良好的封装也可以实现大部分的跨平台。并且体验很好。

     脑图地址: 

     http://naotu.baidu.com/file/1eb556f3380e8189be859348527ec518?token=a5a049eb4c618e70

Native App

      即原生开发模式,开发出来的是原生程序,不一样平台上,Android和iOS的开发方法不一样,开发出来的是一个独立的APP,能发布应用商店,有以下优势和缺点。

优势

  • 直接依托于操做系统,交互性最强,性能最好

    相比于其它模式的交互,原生APP体验是最优的

  • 功能最为强大,特别是在与系统交互中,几乎全部功能都能实现

    得益于原生是直接依托于系统的,因此能够直接调用官方提供的api,功能最为全面(好比本地资源操做,通知,动画等)

缺点

  • 开发成本高,没法跨平台,不一样平台Android和iOS上都要各自独立开发

    Android上基于Java开发,iOS上基于OC或Swift开发,相互之间独立,必需要有各自的开发人员

  • 门槛较高,原生人员有必定的入门门槛,相比广大的前端人员而言,较少

    原生的一个很大特色就是独立,因此不太容易入门,不像web前端同样那么普遍,并且Android,iOS都须要独立学习

  • 更新缓慢,特别是发布应用商店后,须要等到审核周期

    原生应用更新是一个很大的问题,Android中还能直接下载整包APK进行更新,可是iOS中,若是是发布AppStore,必须经过AppStore地址更新,而每次更新都须要审核,因此没法达到及时更新

  • 维护成本高

    同开发同样,项目上线后,维护起来也很为麻烦

Web App

     即移动端的网站,将页面部署在服务器上,而后用户使用各大浏览器访问,不是独立APP,没法安装和发布Web网站通常分两种,MPA(Multi-page Application)和SPA(Single-page Application)。而Web App通常泛指后面的SPA形式开发出的网站(由于能够模仿一些APP的特性),有以下优势和缺点。

优势

  • 开发成本低,能够跨平台,调试方便

    web app通常只须要一个前端人员开发出一套代码,而后便可应用于各大主流浏览器(特殊状况能够代码进行下兼容),没有新的学习成本,并且能够直接在浏览器中调试

  • 维护成本低

    同上,若是代码合理,只须要一名前端就能够维护多个web app

  • 更新最为快速

    因为web app资源是直接部署在服务器端的,因此只须要替换服务器端的文件,用户访问是就已经更新了(固然须要解决一些缓存问题)

  • 无需安装App,不会占用手机内存

    经过浏览器便可访问,无需安装,用户就会比较愿意去用

缺点

  • 性能低,用户体验差

    因为是直接经过的浏览器访问,因此没法使用原生的API,操做体验很差

  • 依赖于网络,页面访问速度慢,耗费流量

    Web App每次访问都须要去服务端加载资源访问,因此必须依赖于网络,并且网速慢时访问速度很不理想,特别是在移动端,若是网站优化很差会无端消耗大量流量

  • 功能受限,大量功能没法实现

    只能使用Html5的一些特殊api,没法调用原生API,因此不少功能存在没法实现状况

  • 临时性入口,用户留存率低

    这既是它的优势,也是缺点,优势是无需安装,肯定是用完后有时候很难再找到,或者说很难专门为某个web app留存一个入口,致使用户很难再次使用

Hybrid App

     即混合开发,也就是半原生半Web的开发模式,有跨平台效果,固然了,实质最终发布的仍然是独立的原生APP(各类的平台有各类的SDK),有以下优势和缺点。

优势

  • 开发成本较低,能够跨平台,调试方便

    Hybrid模式下,由原生提供统一的API给JS调用,实际的主要逻辑有Html和JS来完成,而因为最终是放在webview中显示的,因此只须要写一套代码便可,达到跨平台效果,另外也能够直接在浏览器中调试,很为方便

    最重要的是只须要一个前端人员稍微学习下JS api的调用便可,无需两个独立的原生人员

    通常Hybrid中的跨平台最少能够跨三个平台:Android App,iOS App,普通webkit浏览器

  • 维护成本低,功能可复用

    同上,若是代码合理,只须要一名前端就能够维护多个app,并且不少功能还能够互相复用

  • 更新较为自由

    虽然没有web app更新那么快速,可是Hybrid中也能够经过原生提供api,进行资源主动下载,达到只更新资源文件,不更新apk(ipa)的效果

  • 针对新手友好,学习成本较低

    这种开发模式下,只须要前端人员关注一些原生提供的API,具体的实现无需关心,没有新的学习内容,只须要前端人员便可开发

  • 功能更加完善,性能和体验要比起web app好太多

    由于能够调用原生api,因此不少功能只要原生提供出就能够实现,另外性能也比较接近原生了

  • 部分性能要求的页面可用原生实现

    这应该是Hybrid模式的最多一个好处了,由于这种模式是原生混合web,因此咱们彻底能够将交互强,性能要求高的页面用原生写,而后一些其它页面用JS写,嵌入webview中,达到最佳体验

缺点

  • 相比原生,性能仍然有较大损耗

    这种模式受限于webview的性能桎梏,相比原生而言有很多损耗,体验没法和原生相比

  • 不适用于交互性较强的app

    这种模式的主要应用是:一些新闻阅读类,信息展现类的app;可是不适用于一些交互较强或者性能要求较高的app(好比动画较多就不适合)

React Native App

      Facebook发起的开源的一套新的APP开发方案,Facebook在当初深刻研究Hybrid开发后,以为这种模式有先天的缺陷,因此果断放弃,转而自行研究,后来推出了本身的“React Native”方案,不一样于H5,也不一样于原生,更像是用JS写出原生应用,有以下优势和缺点,其实不少大公司都已经转React Native开发了,已经很成熟了。

优势

  • 虽说开发成本大于Hybrid模式,可是小于原生模式,大部分代码可复用

    相比于原生模式,这种模式是统一用JS写代码,因此每每只须要一名成员投入学习,便可完成跨平台app的开发,并且后续代码封装的好,不少功能可复用

  • 性能体验高于Hybrid,不逊色与原生

    这种模式和Hybrid不同,Hybrid中的view层实际上仍是dom,可是这种模式的view层是虚拟dom,因此性能要高于Hybrid,距离原生差距不大

    这种模式能够认为是用JS写原生,即页面用JS写,而后原生经过Bridge技术分析JS,将JS内容单独渲染成原生Android和iOS,因此也就是为何性能不逊色原生

  • 开发人员单一技术栈,一次学习,跨平台开发

    这种模式是统一由JS编写,有着独特的语法,因此只须要学习一次,便可同时开发Android和iOS

  • 社区繁荣,遇到问题容易解决

    这应该是React Native的很大一个优点,不像Hybrid模式和原生模式同样各自为营,这种模式是Facebook统一发起的,因此有一个统一的社区,里面有大量资源和活跃的人员,对开发者很友好

缺点

  • 虽然能够部分跨平台,但并非Hybrid中的一次编写,两次运行那种,而是不一样平台代码有所区别

    这种模式实际上仍是JS来写原生,因此Android和iOS中的原生代码会有所区别,若是须要跨平台,对开发人员有必定要求

    固然了,若是发展了有必定时间,组件库够丰富了,那么其实影响也就不大了,甚至会比Hybrid更快

  • 开发人员学习有必定成本

    虽然社区已经比较成熟了,可是一个新的普通前端学习起来仍是有必定学习成本的,没法像Hybrid模式同样平滑

分析

各大开发模式直观对比

      如下是各大模式的直观对比分析

  Native App Web App Hybrid App React Native App
原生功能体验 优秀 良好 接近优秀
渲染性能 很是快 接近快
是否支持设备底层访问 支持 不支持 支持 支持
网络要求 支持离线 依赖网络 支持离线(资源存本地状况) 支持离线
更新复杂度 高(几乎老是经过应用商店更新) 低(服务器端直接更新) 较低(能够进行资源包更新) 较低(能够进行资源包更新)
编程语言 Android(Java),iOS(OC/Swift) js+html+css3 js+html+css3 主要使用JS编写,语法规则JSX
社区资源 丰富(Android,iOS单独学习) 丰富(大量前端资源) 有局限(不一样的Hybrid相互独立) 丰富(统一的活跃社区)
上手难度 难(不一样平台须要单独学习) 简单(写一次,支持不一样平台访问) 简单(写一次,运行任何平台) 中等(学习一次,写任何平台)
开发周期 较短 中等
开发成本 昂贵 便宜 较为便宜 中等
跨平台 不跨平台 全部H5浏览器 Android,iOS,h5浏览器 Android,iOS
APP发布 App Store Web服务器 App Store App Store

如何选择开发模式

     目前有多种开发模式,那么咱们平时开发时如何选择用哪一种模式呢?以下

选择纯Native App模式的状况

  • 性能要求极高,体验要求极好,不追求开发效率

    通常属于吹毛求疵的那种级别了,由于正常来讲若是要求不是特别高,会有Hybrid

选择Web App模式的状况

  • 不追求用户体验和性能,对离线访问没要求

    正常来讲,若是追求性能和体验,都不会选用web app

  • 没有额外功能,只有一些信息展现

    由于web有限制,不少功能都没法实现,因此有额外功能就只能弃用这种方案了

选择Hybrid App模式的状况

  • 大部分状况下的App都推荐采用这种模式

    这种模式能够用原生来实现要求高的界面,对于一些比较通用型,展现型的页面彻底能够用web来实现,达到跨平台效果,提高效率

    固然了,通常好一点的Hybrid方案,都会把资源放在本地的,能够减小网络流量消耗

选择React Native App模式的状况

  • 追求性能,体验,同时追求开发效率,并且有必定的技术资本,舍得前期投入

    React Native这种模式学习成本较高,因此须要前期投入很多时间才能达到较好水平,可是有了必定水准后,开发起来它的优点就体现出来了,性能不逊色原生,并且开发速度也很快

另类的app方案

      除了以上的几种常见app开发模式,其实还有一些其它的相似方案

微网页

      好比在进行微信网页开发时,能够调用一些微信的特殊api,这其实就是算是微信的Hybrid模式,实质上仍然是在浏览器中(只不过是腾讯的X5内核)

      固然了,微信在这方面作了不少限制,好比权限认证等等,因此致使开发起来效果不是很完美。这里再也不赘述其功能

微信小程序

      微信小程序是微信新推出的一种新的app方案,2016年9月开始进行内测,2016年11月准备全面面向开发者须要注意的是,这种模式是“反HTML5”的,至关因而微信提供的一套封闭开发模式,有本身的语法和IDE,有的相似于iOS开发的感受。具体也不赘述,请参考引用来源中的文章

参考资料