这是我参与「第五届青训营 」伴学笔记创作活动的第 7 天
本堂课重点内容
- 跨端技术简介
- 跨端技术方案
- 字节小程序介绍
跨端技术简介
随着业务的发展,越来越得到业务场景产生了,同时随着技术的发展,也产生了越来越多的端,如pc端,移动端,web端,IoT设备等。
这也就产生了一些痛点:
- 各端功能几乎一致,各端需要单独配置研发人员
- 开发、维护成本高
- 安卓、IOS发版周期长
所以跨端技术的方案也就是为了使研发效率高、用户体验好、支持动态化下发,满足日益增长的业务需求。
跨端技术方案介绍
hybrid 方案
基于WebView渲染,通过JS Bridge把一部分系统能力开放给JS调用。
WebView容器的工作原理是基于Web技术来实现界面和功能,通过将原生的接口封装、暴露给JavaScript调用,Javascript编写的页面可以运行在系统自带的WebView中。这样做的优势是,对于前端开发者比较友好,可以很快地实现页面跨端,同时保留调用原生的能力,通过搭建桥接层和原生能力打通。但这种设计,跨端的能力受限于桥接层,当调用之前没有的原生能力时,就需要增加桥。另外,浏览器内核的渲染独立于系统组件,无法保证原生体验,渲染的效果会差不少。
原生渲染方案
使用JS开发,通过中间层桥接后使用原生组件来渲染UI界面
React Native
React Native 是一个由Facebook 于2015年9月发布的一款开源的JavaScript框架,他可以让开发者使用JavaScript 和 React 来开发跨平台的移动应用。
自渲染方案
利用Skia重新实现渲染管线,不依赖原生组件
Flutter
Futter 是 Google 在 2018 年世界移动大会公布的开源应用开发框架,仅通过一套代码库,就能构建精美的、原生平台编译的多平台应用。
小程序方案
使用小程序DSL + JS 开发,通过中间层桥接后调用原生能力,使用webview来渲染UI界面。