APP 开发简介
app 是应用 (application) 的缩写,一般我们指的是,移动 app 开发,移动指的是移动设备平台,如手机、iPad等; 移动 App 就是移动设备上运行的应用程序,例如我们手机上的微信、支付宝等应用。
app 种类划分
- WebAPP:
- 网页应用,需要运行在
浏览器环境中,无需安装即可使用 - 使用纯
web技术开发实现 - 由
浏览器负责UI界面的渲染
- 网页应用,需要运行在
- NativeAPP:
- 原生应用,直接运行在移动
设备上, 需要安装后使用 - 主要采用设备
原生语言开发实现,可以调用设备的底层硬件 - 由移动
设备负责UI界面的渲染
- 原生应用,直接运行在移动
- HybridAPP:
- 混合应用,直接运行在
移动设备上, 需要安装后使用 - 部分功能采用设备
原生语言开发, 部分采用web技术开发 原生语言编写的功能由移动设置渲染,web语言编写的功能运行在App内嵌的web容器中,就是一个内嵌的浏览器
- 混合应用,直接运行在
运作模式对比
优缺点
| 对比/分类 | Web App | Native App | Hybrid App |
|---|---|---|---|
| 市场认可度 | 不认 | 认可 | 认可 |
| 是否要安装 | 否 | 是 | 是 |
| 开发成本 | 低 | 高 | 中 |
| 维护更新 | 低 | 高 | 中 |
| 跨平台 | 低 | 高 | 中 |
| 体验 | 差 | 高 | 中 |
进化
通过上面的对比发现,Native App 性能体验好,Hybrid App 开发维护成本低。如果有一种技术能够同时拥有两者的优点就好了,facebook 公司的 ReactNative 因此而生,它使用js和React编写UI逻辑,然后生成原生控件进行渲染绘制,既拥有媲美原生应用的性能体验,又拥有混合应用跨平台、开发快等优点。
当然这也不是绝对的,在特殊需求下,还是会有不足。首先框架本身需要处理大量平台相关的逻辑,随着系统与API的升级变化,开发者有可能也需要处理平台之间的差异,甚至有些特性只能在部分平台上实现,从而降低跨平台性。当然,这些问题也会随着 ReactNative 的版本迭代逐渐改善。
WEB技术开发框架
混合应用
Ionic
- Angular官网 angular.io/
- Ionic官网 ionicframework.com/
- Ionic中文网 www.ionic.wang/
- Cordova官网 cordova.apache.org/
- Cordova中文网 cordova.axuer.com/
Html5+
AppCan
微信公众号
原生App
ReactNative
- React官网 facebook.github.io/react/
- ReactNative官网 facebook.github.io/react-nativ…
- ReactNative中文网 reactnative.cn/
Weex
- Vue官网 cn.vuejs.org/
- Weex官网 weex.apache.org/cn/
- WeexGithub github.com/apache/incu…
Flutter
- Rlutter官网 flutter.io/
- Rlutter中文网 flutterchina.club/