这是我参与「第五届青训营 」伴学笔记创作活动的第 6 天.
跨端背景
随着业务的发展,产生了越来越多的业务场景,同时随着技术的发展,产生了越来越多的端,PC端 (Windows、Mac),移动端(安卓、iOS). web端、loT设备(车载设备、手表)等
常见难点:
- 开发成本高
- 安卓,ios发版周期长
跨端技术方案目标
- 研发效率高,学习成本低,多端一致性高
- 用户体验好,稳定性高
- 支持动态下发,适用变化性需求
跨端技术方案介绍
Hybird方案
基于Webview渲染,通过JSBridge把一部分系统能力开发给JS调用
原生渲染方案
使用JS开发,通过中间层桥接后使用原生组件来渲染UI界面
React Native
自渲染方案
利用Skia重新实现渲染管线,不依赖原生组件
flutter
小程序方案
使用小程序DSL+JS开发,通过中间层桥接后调用原生能力,使用webview来渲染UI界面
字节小程序
字节小程序是一种全新的连接用户与服务的方式,它可以在宿主(抖音、头条等App)内被便捷地获取和传播,同时具有出色的使用体验。
跨端方案对比
- hybrid方案。视图层:webview,逻辑层:webview JSthread,优点:开发成本低,CSS全集,一致性好,缺点:性能中等。
- 原生渲染方案。视图层:原生组件,逻辑层:JS engine,优点:性能好,缺点:CSS子集,一致性一般
- 自渲染方案。视图层:skia,逻辑层:Dart VM,优点:性能最好,一致性最好,缺点:CSS子集,开发成本高
- 小程序方案。 视图层:webview+原生组件,逻辑层:JS engine,优点:开发成本低,一致性好,CSS全集,缺点:性能不高