这是我参与「第五届青训营 」伴学笔记创作活动的第 14 天
本课重点概要
- 跨端背景
- 跨端定义
- 跨端技术方案
本课课程内容
背景
产生了越来越多的端,PC端(Windows\Mac)移动端(安卓IOS)、web端、IOT设备(车载电视、手表)
痛点
- 各端功能一致但是需要单独配置开发人员
- 开发维护成本高
- 安卓IOS发版周期长
目标
- 提高研发效率,提升多端一致性
- 提高用户体验
- 支持动态化下发
技术方案
Hybrid方案
基于webview渲染,通过js bridge把一部分系统功能给JS使用
优点:
- JavaScript编写的页面可以运行在系统自带的WebView中。
- 对于前端开发者比较友好,可以很快地实现页面跨端
- 同时保留调用原生的能力,通过搭建桥接层和原生能力打通
缺陷:
- 跨端的能力受限于桥接层,当调用之前没有的原生能力时,就需要增加桥。
- 另外,浏览器内核的渲染独立于系统组件,无法保证原生体验,渲染的效果会差不少。
原生渲染方案
使用JS开发,通过中间层桥使用原生组件渲染UI
其中广泛使用的是React Native方案:
使用React+js的移动端开发方案
在运行时,React Native 为这些组件创建相应的 Android 和 iOS 视图。由于 React Native 组件就是对原生视图的封装,因此使用 React Native 编写的应用外观、感觉和性能与其他任何原生应用一样。
自渲染方案
利用Skia重新渲染,不依赖原生
其中应用广发的是Flutter
flutter可以仅仅通过一套代码库构建精美的多平台应用
小程序方案
使用小程序DSL+JS开发,通过中间层桥调用原生能力,使用webview渲染UI