这是我参与「第五届青训营 」伴学笔记创作活动的第 9 天
跨端是什么
跨端背景
随着业务的发展,产生了越来越多的业务场景,同时随着技术的发展,产生了 越来越多的端,PC 端(Windows、Mac) ,移动端(安卓、iOs)、web端、loT 设备(车载设备、手表)等。
常见痛点:
- 各端功能几乎致,各端需要单独配置研发人员
- 开发、维护成本高
- 安卓、ios发版周期长
跨端技术方案目标
- 研发效率高
- 用户体验好
- 动态化
跨端技术方案介绍
Hybrid 方案
基于WebView渲染,通过JS Bridge 把一部分系统能力开放给JS调用。
原生渲染方案
使用JS开发,通过中间层桥接后使用原生组件来渲染UI界面
React Native
React National 是一个由 Facebook 于2015年9月发布的一款开源的 JavaScript 框架,它可以让开发者使用 JavaScript 和 React 来开发跨平台的移动应用。
React Native 的思路是最大化地复用前端的生态和 Native 的生态,和 WebView 容器的最大区别在于 View 的渲染体系。React Native 抛弃了低效的浏览器内核渲染,转而使用自己的 DSL 生成中间格式,然后映射到对应的平台,渲染成平台的组件。相对 WebView 容器,体验会有一定的提升。不过,渲染时需要 JavaScript 和原生之间通信,在有些场景可能会导致卡顿。另外就是,渲染还是在Native层,要求开发人员对Native有一定的熟悉度。
自渲染方案
Flutter
Flutter是Google在2018年世界移动大会公布的开源应用开发框架,仅通过一套代码库,就能构建精美的、原生平台编译的多平台应用。
小程序方案
使用小程序DSL + JS开发,通过中间层桥接后调用原生能力,使用webview来渲染UI界面。
字节小程序
字节小程序是一种全新的连接用户与服务的方式,它可以在宿主(抖音、头条等App)内被便捷地获取和传播,同时具有出色的使用体验。
方案对比
总结
技术展望
随着端越来越多,跨端地需求会越来越强烈,跨端技术方案也会不断迭代,核心目标仍然会是[write once,run anywhere], 未来自渲染可能会出现更多机会。