这是我参与「第五届青训营 」笔记创作活动的第14天
一、重点内容介绍:
1、什么是跨端
2、跨端方案介绍
二、详细知识点
1、什么是跨端
跨端的背景
- 随着业务的发展,产生了越来越多的业务场景。
- 同时随着技术的发展,产生了越来越多的端,PC端(Windows、Mac) ,移动端 (安卓、ios) 、web端、IoT 设备 (车载设备、手表)等
跨端具有以下痛点
- 1.各端功能几乎一致,各端需要单独配置研发人员
- 2.开发、维护成本高
- 3.安卓、iOS 发版周期长
跨端的目标
-
- 多端一致性,研发效率高,学习成本低
-
- 用户体验好,稳定性高
-
- 支持动态化和动态下发,满足业务需要
2、跨端方案介绍
Hybrid 方案
- 基于 WebView 渲染,通过 JS Bridge 把一部分系统能力开放给 JS 调用
- Webview容器的工作原是基于Web技术解决实现界面和功影,通过将原生的接口封装、暴露JavaScript调用。
- 这样的优势是,对于前品开发者比较友好,可以很快的实现页面跨端,同时保留调用原生的能力。
原生渲染方案
- 使用 JS 开发,通过中间层桥接后使用原生组件来渲染 UI 界面.
- 在 Android 开发中是使用 Kotlin 或 Java 来编写视图;
- 在 ios 开发中是使用 Swift 或 Objective-C 来编写视图
- 在 React Native 中,则使用 React 组件通过 JavaScript 来调用这些视图
原生渲染方案 - React Native
- React Native 是一个由 Facebook 于 2015 年9 月发布的一款开源的 JavaScript 框架.
- 它可以让开发者使用 JavaScript 和 React 来开发跨平台的移动应用
- React Native 的思路是最大化地复用前端的生态和 Native 的生态,和 WebView 容器的最大区别在于 View 的染体系.
- React Native 抛弃了低效的浏览器内核渲染,转而使用自己的 DSL 生成中间格式,然后映射到对应的平台,相对 WebView 容器,体验会有一定的提升。
- React Native 主要有JSI、Fabric、TurboModules 组成.
自渲染方案
- 利用 Skia 重新实现渲染管线,不依赖原生组件
- Flutter 是 Google 在 2018 年世界移动大会公布的开源应用开发框架,仅通过-套代码库,就能构建精美的、原生平台编译的多平台应用。
小程序方案
- 使用小程序 DSL + JS 开发,通过中间层桥接后调用原生能力,使用webview 来渲染 UI 界面
- 字节小程序是一种全新的连接用户与服务的方式,它可以在宿主 (抖音、头条等App) 内被便捷地获取和传播,同时具有出色的使用体验
小结
通过今天课程的学习,我了解了什么是跨端,跨端出现的原因,以及他用于解决的业务痛点。
我还了解到了跨端的各种主流实现方案。
随着端越来越多,跨端的需求会越来越强烈,跨端技术方案也会不断迭代,不过我们的核心目标仍然是 write once, run anywhere。