(点击上方公众号,可快速关注)

来源:zwwill_木羽

segmentfault.com/a/1190000011154120

一句话概要

Native、Web App、Hybrid、React Native(后面以RN简称)、Weex 间的异同点,后期同步 小程序PWA

App常用开发模式简介

此处App为应用,application,并非我们通常讲的手机App。

常用的几种APP开发模式-脑图:http://naotu.baidu.com/file/6af15fcbb72f89926043779811b1ea44?token=df0378691ecdcef2

Native App

传统的原生App开发模式,有iOS和aOS两大系统,需要各自语言开发各自App。

优点:性能和体验都是最好的。

缺点:开发和发布成本高。

举个栗子:网易管家App (https://id.163.com/gj/)

应用技术:Swift,OC,Java。

WebApp

移动端的网站,常被称为H5应用,说白了就是特定运行在移动端浏览器上的网站应用。一般泛指 SPA(Single Page Application)模式开发出的网站,与MPA(Multi-page Application)对应。

优点:开发和发布成本最低。

缺点:性能和体验不能讲是最差的,但也受到浏览器处理能力的限制,多次下载同样会占用用户一定的流量。

举个栗子:网易管家APP(https://id.163.com/gj/)

应用技术:ReactJS,RegularJS,VueJS等等。

Hybrid App

混合模式移动应用,介于Web App、Native App这两者之间的App开发技术,兼具“Native App良好交互体验的优势”和“Web App跨平台开发的优势”(百度百科解释)

主要的原理是,由Native通过JSBridge等方法提供统一的API,然后用Html+Css实现界面,JS来写逻辑,调用API,最终的页面在Webview中显示,这种模式下,Android、iOS的API一般有一致性,Hybrid App所以有跨平台效果。

优点:开发和发布都比较方便,效率介于Native App、Web App之间。

缺点:学习范围较广,需要原生配合。

举个栗子:FanReact,我爱我家App,东方航空App,富国基金-富国钱包App

应用技术:PhoneGap,AppCan,Wex5,APICloud等。

React Native App

Facebook发现Hybrid App存在很多缺陷和不足,于是发起开源的一套新的App开发方案RN。使用JSX语言写原生界面,js通过JSBridge调用原生API渲染UI交互通信。

优点:效率体验接近Native App,发布和开发成本低于Native App。

缺点:学习有一定成本,且文档较少,免不了踩坑。

举个栗子:Facebook、Youtube、Discord、QQ、百度等等。

Weex App

阿里巴巴开发团队在RN的成功案例上,重新设计出的一套开发模式,站在了巨人肩膀上并有淘宝团队项目做养料,广受关注,2016年4月正式开源,并在v2.0版本官方支持Vue.js,与RN分庭抗礼。

优点:单页开发模式效率极高,热更新发包体积小,并且跨平台性更强。

缺点:刚刚起步,文档欠缺;社区没有RN活跃,功能尚不健全,暂不适合完全使用Weex开发App。

举个栗子:淘宝、天猫、阿里云、优酷、闲鱼、饿了么等。

Native App

Native App是一种基于智能手机本地操作系统如iOS、Android、WP并使用原生程式编写运行的第三方应用程序,也叫本地app。一般使用的开发语言为Java、C++、Objective-C。

自iOS和Android这两个的手机操作系统发布以来,在互联网界从此就多了一个新的名词:App意为运行在智能的移动终端设备第三方应用程序。

Native App因为位于平台层上方,向下访问和兼容的能力会比较好一些,可以支持在线或离线,消息推送或本地资源访问,摄像拨号功能的调取。但是由于设备碎片化,App的开发成本要高很多,维持多个版本的更新升级比较麻烦,用户的安装门槛也比较高。但是比较乐观的是,AppStore培养了一种比较好的用户付费模式,所以在Apple的生态圈里,开发者的盈利模式是一种明朗状态,其他market也在往这条路上靠拢。

优势

  1. 相比于其它模式,提供最佳的用户体验,最优质的用户界面,最华丽的交互

  2. 针对不同平台提供不同体验

  3. 可节省带宽成本,打开速度更快

  4. 功能最为强大,特别是在与系统交互中,几乎所有功能都能实现

劣势

  1. 门槛高,原生开发人才稀缺,至少比前端和后端少,开发环境昂贵

  2. 无法跨平台,开发的成本比较大,各个系统独立开发

  3. 发布成本高,需要通过store或market的审核,导致更新缓慢

  4. 维持多个版本、多个系统的成本比较高,而且必须做兼容

  5. 应用市场逐渐饱和,怎么样抢占用户时间需要投入大量时间和金钱,这也导致“僵尸”App的增多

WebApp

说到Web App 不少人会联想到 WAP,或者有人认为,WAP就是WebApp,其实不然。

WebApp 与 WAP 最直接的区别就是功能层面。WAP更侧重使用网页技术在移动端做展示,包括文字、媒体文件等。而Web App更侧重“功能”,是使用网页技术实现的App。总的来说,Web App就是运行于网络和标准浏览器上,基于网页技术开发实现特定功能的应用。

响应式的大部分技术都是为实现WebApp能适配多类客户端而设计的。

Web网站一般分两种,MPA(Multi-page Application)和SPA(Single-page Application)。而WebApp一般泛指SPA形式开发出的网站。这样更像是一个App。

优势

  1. 可以跨平台,调试方便

  2. 无需安装,不会占用手机内存,而且更新速度最快

  3. 不存在多版本问题,维护成本低

  4. 临时入口,可以随意嵌入

劣势

  1. 依赖于网络,第一次访问页面速度慢,耗费流量

  2. 受限于手机和浏览器性能,用户体验相较于其他模式最差

  3. 功能受限,大量移动端功能无法实现

  4. 入口强依赖于第三方浏览器,且只能以URL地址的形式存在,导致用户留存率低(优点即缺点)

Hybird App

混合开发,也就是半原生半Web的开发模式,由原生提供统一的API给JS调用,实际的主要逻辑有Html和JS来完成,最终是放在webview中显示的,所以只需要写一套代码即可达到跨平台效果,另外也可以直接在浏览器中调试,很方便。最重要的是只需要一个前端人员稍微学习下JS api的调用即可。

Hybird App 的较早实践者是PhoneGap,随后遍地开花,如Titanium、Salama、WeX5、Kerkee和国内的AppCan,项目各有各的实现方式,大致的原理基本相同。有幸在AppCan上海总部参与过一段时间的学习研究,如下大致简介:

AppCan是基于HTML5技术的Hybird跨平台移动应用开发工具。开发者利用Html5+Css3+JavaScript技术,通过AppCan IDE集成开发系统、云端打包器等,快速开发出Android、iOS、WP平台上的移动应用。

AppCan的平台构成:

在实际的APP开发中,AppCan可以完成大部分的工作量,如图示:

AppCan将App底层复杂的原生功能封装在引擎、插件中,开发者仅需调用接口、打包编译,就可以获得原生功能;灵活的插件扩展机制。

开发者可以像开发WebApp一样开发app的视觉UI,以及绝大部分的交互,当需要使用原生功能(如摄像头,陀螺仪等功能)时,只需要调用官方的API就可以轻松实现Native的效果。至于JS和Native的通信,常用的有URL监听和绝大部分Hybrid厂商使用的JSBridge通信,两者原理相近。

关于JsBridge的原理详解,可见http://blog.csdn.net/xiangzhihong8/article/details/66970600

在Hybird概念盛行的时候,国内外各大公司也参与了探索,国外代表有Facebook、google、亚马逊,国内的有腾讯、阿里巴巴、网易等,慢慢的他们发现Hybird严重受限于WebView的解析渲染效率,于是Facebook开始了他的类原生的研究探索。

React Native App

请移驾:【笔记】React Native 快速入门笔记(https://segmentfault.com/a/1190000010989345)。

Weex App

请移驾:网易严选App感受Weex开发(https://segmentfault.com/a/1190000011027225)。

【关于投稿】

如果大家有原创好文投稿,请直接给公号发送留言。

① 留言格式:
【投稿】+《 文章标题》+ 文章链接

② 示例:
【投稿】《不要自称是程序员,我十多年的 IT 职场总结》:http://blog.jobbole.com/94148/

③ 最后请附上您的个人简介哈~

觉得本文对你有帮助?请分享给更多人

关注「前端大全」,提升前端技能

什么是 Native、Web App、Hybrid、React Native 和 Weex?相关推荐

  1. Hybrid App 和 React Native 开发那点事

    版权声明:本文为博主原创文章,未经博主允许不得转载. 简介:Hybrid App(混合模式移动应用)开发是指介于Web-app.Native-App这两者之间的一种开发模式,兼具「Native App ...

  2. 如何将React App转换为React Native

    I have been working on a lot of mobile projects lately - including Cordova, PhoneGap, React Native, ...

  3. Web前端:React Native Web与React — 比较指南

    ​ React 是Facebook开发的用于构建交互式用户界面的JavaScript库.React 在 Apache 许可下作为开源软件提供,可用于个人和商业网站.客户端 Web 应用程序和服务器应用 ...

  4. 开发跨平台app推荐React Native还是flutter?

    嗯...这个问题十分不好回答啊(捋下鱼须).闲鱼作为flutter领域的先驱者,以及fish_redux.flutter_boost等当红flutter库的作者,当然是欢迎广大的开发者多多使用flut ...

  5. 适合做app的前端框架有哪些?webAPP移动端App:react native、weex、flutter

  6. 基于 React Native 的 58 同城 App 开发实践

    作者简介: 彭飞,58 同城 iOS 客户端架构师.专注于新技术的研发,主要负责 App 端组件化架构以及性能优化,并已推广 React Native 在 58 同城 App 中业务场景的应用.在 M ...

  7. React Native制作仿美团APP总结

    最近学习了一个网上的React Native项目,利用React Native制作一个类似于美团的App,项目属于对之前React Native常用组件的基本使用,但是仍有一些关键点值得记录.最后做成 ...

  8. 小谈React、React Native、React Web

    React有三个东西,React JS 前端Web框架,React Native 移动终端Hybrid框架,React Web是一个源码转换工具(React Native 转 Web,并之所以特别提出 ...

  9. 技术实践丨React Native 项目 Web 端同构

    摘要:尽管 React Native 已经进入开源的第 6 个年头,距离发布 1.0 版本依旧是遥遥无期."Learn once, write anywhere",完全不影响 Re ...

  10. 手机app开发可选技术——React Native

    百度百科 React Native是Facebook于2015年开源的跨平台移动应用开发框架,是Facebook早先开源的JS框架React在原生移动应用平台的衍生产物,支持IOS和安卓两大平台.RN ...

最新文章

  1. css菜单缓慢滑动_如何使用HTML,CSS和JavaScript构建滑动菜单栏
  2. EIRP/ERP(有效辐射功率)基本概念
  3. 在线支付之风控系统架构选型
  4. 20155220吴思其 实验2 Windows口令破解
  5. 《论道HTML5》内容技术分享活动
  6. 三维数据平滑处理_VTK图像处理(二)--vtkPolyData数据处理
  7. 雅礼集训Day3-难题选讲
  8. SVN部署与简单使用
  9. office提示 Excel 4.0函数以定义名称保存
  10. 通达OA前台任意用户登录漏洞复现
  11. Simulink飞行动力学教程
  12. 2课:单片机引脚介绍
  13. 机器学习8-误差逆传播算法BP的认识
  14. Python练习题答案: 纳特拼音alaphabeta【难度:1级】--景越Python编程实例训练营,1000道上机题等你来挑战
  15. linux 命令修改IP(最有效方法)
  16. 【扫盲】Pulse消除马赛克(老司机福利)
  17. linux下的清屏方法
  18. 红楼梦人物分词及可视化
  19. golang+uniapp 开发的一套微信小程序电商系统
  20. 代理对推广网站的四个作用

热门文章

  1. python实验一_Python实验一
  2. ROS下UVC免驱高速摄像头图像读取以及利用image_transport进行图像传递
  3. OLED控制字体和大小
  4. 【AI】AI入门之Nvidia Jetson平台(一)- Jetson平台介绍
  5. 计算机类商品零售高速增长,【中银策略】行业景气跟踪:1月纺织服装类商品出口累计同比增14.6%...
  6. matlab图像处理相关函数
  7. autojs对话框修改样式
  8. 爬虫解析库之xpath、Beautifulsoup的对比使用
  9. Flink 怎么部署安装?
  10. 访谈报告计算机辅导员,职业访谈の大学辅导员