Native Apps、Web Apps
Native Apps 指的是远程程序,一般依托于操作系统,有很强的交互,是一个完整的App,可拓展性强,需要用户下载安装使用
优点:
- 打造完美的用户体验
- 性能稳定
- 操作速度快,上手流畅
- 访问本地资源(通讯录,相册)
- 设计出色的动效,转场
- 拥有系统界别的贴心通知或提醒
- 用户留存率高
缺点:
- 分发成本高(不同平台有不同的开发语言和界面适配)
- 维护成本高(例如一款App已更新至V5版本,但仍有用户在使用V2,V3,V4版本,需要更多的开发人员)
- 更新缓慢,根据不同平台,提交-审核-上线等等不同的流程,需要经过的流程较复杂
Web Apps
指采用HTML5语言写出的App,不需要下载安装。类似于现在所说的轻应用。生存在浏览器中的应用,基本上可以说是触屏版的网页应用
优点:
- 开发成本低
- 更新快
- 更新无需通知用户,不需要手动升级
- 能跨多个平台和终端
缺点:
- 临时性的入口
- 无法获取系统级别的通知,提醒,动效等等
- 用户留存率低
- 设计受限制诸多
- 体验较差
Hybrid Apps 混合开发(H5+原生):如:微信
Hybrid Apps 指的是半原生半Web的混合类App。需要下载安装,看上去类似Native Apps,但只有很少的UI Web View ,访问的内容是web。例如:store 里的新闻类APP ,视频类APP普遍采取的是Native的框架,Web的内容
优点:
- 兼容了Native Apps 和 Web Apps 的优点
- 可以通过jsBridge直接访问Native API
- 能够轻松使用跨平台Web技术
- 测试方便
缺点:
APP的Web部分可能是驻留在服务器上的网页,封装到App代码中,存储在设备本地。
- Hybrid Apps 代码驻留在服务器上,摈弃了任何离线可用性,因为设备与网络没有连接时,无法访问设备。(已有解决方案:本地留存)
- 把Web代码封装到APP里面可以提高性能和可访问性,但是不允许远程更新。
嵌入形态:
参数对比:
实现技术:js、css,html
React
React.js& React Native
联系
- UI使用的都是JSX,逻辑都是使用了JavaScript
- 都应用了虚拟DOM(Virtual DOM)
区别
- 对于Web Apps,虚拟DOM仍然要转换成实际的DOM
- 对于Android和iOS,虚拟DOM映射成本地控件
React Native
优势:
- 基于React Native 的App在运行效率上接近Native App
- 具备混合开发模式(Hybrid)的两个优点:热更新和跨平台