跨端技术 | 字节青训营

90 阅读2分钟

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

随着技术发展端,有PC端(Windows、Mac) ,移动端(安卓、iOs)web端、IoT 设备(车载设备、手表)等。

目标

  1. 研发效率高:学习成本低、多端一致性高
  2. 用户体验好:稳定性高、性能体验好
  3. 动态化:支持动态化下发展,满足日益增长的业务需求

跨端技术对比

image.png 现在火热的React Native和Flutter。一个出自Facebook,一个出自Google。

在端上的开发,有前辈总结了一个很精辟的观点:端上的开发无外乎三件事,“数据获取”,“状态管理”,“页面渲染”。而在跨端领域的竟争,我理解是“虚拟机”,“渲染引擎”,“原生交互”,“开发环境”的竟争。

从 Flutter (自渲染方案)来看,在虚拟机上使用了 Dart VM,Dart 支持 JIT 与 AOT 两种编译模式,也就是我们所说的动态编译与静态编译。在渲染引擎上,Flutter 使用了 Skia 渲染引擎进行视图绘制,避开了不同平台上控件渲染差异。

然后再说 RN (原生渲染方案),在早期的架构上虚拟机使用的是 JSC (Javascript Core) 执行运算,这样它可以充分复用 JS 生态,吸引大量前端开发者参与。而且由于 JS 天生跨平台的特点,跨端移值 App 也顺理成章。在渲染引擎上 RN 没有直接使用 WebKit 或其它 Web 引擎,因为之前 Web 在构建复杂页面时带来的计算消耗,远比不上纯原生引擎的渲染。所以它直接复用了原生的渲染通道,这样就可以带来与原生近乎一致的体验。

小程序优化

目标:留住用户、提升转化率、提升用户体验 优化方式:启动时和运行时优化 image.png

借鉴链接:juejin.cn/post/703077…