Day 7 -- 跨端技术的学习 | 青训营笔记

105 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 7 天

本堂课重点内容

  1. 跨端技术简介
  2. 跨端技术方案
  3. 字节小程序介绍

跨端技术简介

随着业务的发展,越来越得到业务场景产生了,同时随着技术的发展,也产生了越来越多的端,如pc端,移动端,web端,IoT设备等。

这也就产生了一些痛点:

  1. 各端功能几乎一致,各端需要单独配置研发人员
  2. 开发、维护成本高
  3. 安卓、IOS发版周期长

所以跨端技术的方案也就是为了使研发效率高、用户体验好、支持动态化下发,满足日益增长的业务需求。

跨端技术方案介绍

hybrid 方案

基于WebView渲染,通过JS Bridge把一部分系统能力开放给JS调用。

截屏2023-02-05 09.29.31.png

WebView容器的工作原理是基于Web技术来实现界面和功能,通过将原生的接口封装、暴露给JavaScript调用,Javascript编写的页面可以运行在系统自带的WebView中。这样做的优势是,对于前端开发者比较友好,可以很快地实现页面跨端,同时保留调用原生的能力,通过搭建桥接层和原生能力打通。但这种设计,跨端的能力受限于桥接层,当调用之前没有的原生能力时,就需要增加桥。另外,浏览器内核的渲染独立于系统组件,无法保证原生体验,渲染的效果会差不少。

原生渲染方案

截屏2023-02-05 10.22.05.png

使用JS开发,通过中间层桥接后使用原生组件来渲染UI界面

React Native

React Native 是一个由Facebook 于2015年9月发布的一款开源的JavaScript框架,他可以让开发者使用JavaScript 和 React 来开发跨平台的移动应用。

自渲染方案

利用Skia重新实现渲染管线,不依赖原生组件

截屏2023-02-05 15.53.58.png

Flutter

Futter 是 Google 在 2018 年世界移动大会公布的开源应用开发框架,仅通过一套代码库,就能构建精美的、原生平台编译的多平台应用。

小程序方案

使用小程序DSL + JS 开发,通过中间层桥接后调用原生能力,使用webview来渲染UI界面。

各方案对比

截屏2023-02-05 15.55.27.png