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(未来趋势)
- RN使用React框架进行开发
- Weex基于vue框架进行开发
- 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 |