1.混合App(Hybrid App)

混合App是使用类似于web技术来开发原生App(Native App),但是相比于原生,性能仍有很大损耗,受限于webview的能力。
为了扩展web的能力,有以下四种应用技术:Cordova,APPCan,DCloud,API Cloud
四种方式对比:

Cordova

AppCan

DCloud

APICloud

框架目标

为原生开发者解决平台差异性问题

提供跨平台移动应用快速开发一体化解决方案

解决HTML5的工具,能力,性能三个重要问题

重新定义移动应用开发。提供云/端两项服务

框架功能

简单

丰富

丰富

丰富

支持平台

大部分平台

IOS/Android

IOS/Android

IOS/Android

开发环境

不同平台需要不同环境

Eclipse(IDE内置)

HBuilder(该公司自主产品)

Sublime/Eclipse/DW/Webstorm

开发语言

HTML5/JS/CSS3

HTML5/JS/CSS3

HTML5/JS/CSS3

HTML5/JS/CSS3

2.跨平台开发

跨平台开发App性能体验高于Hybrid,不逊色于Native
应用技术:React Native(主流),Weex(使用不多),Flutter(未来趋势)

  1. RN使用React框架进行开发
  2. Weex基于vue框架进行开发
  3. Flutter使用Dart语言(和JavaScript很像)进行开发

3.其他类型App

小程序

  • 微信小程序
  • 百度小程序
  • 头条小程序
  • 支付宝小程序
  • 等等

统一开发平台

  • taro(京东)->坑多-趋势不错
  • uni-app ->常用小程序开发

微网页

  • 微信公众号
  • 百度直达号
  • 等等

快应用(不温不火,iPhone不参与很难搞起来)

  • 各大手机厂商联合制定推出一种方式,类似于小程序
  • 使用Web技术进行开发,而且提供了在web中访问手机硬件等底层交互的API
  • 属于混合App的一种方式

PWA(网站离线访问技术,没有iPhone)

  • 它可以让网站拥有一个类似于App的入口
  • 提供了网站的离线应用访问

4.各大开发模式对比

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