跨端技术概述 | 青训营笔记

92 阅读2分钟

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

跨端概念介绍

背景

PC端、移动端、Web端、IOT端……

目标

  • 提高研发效率

    • 降低学习成本
    • 保证多端一致性
  • 提升用户体验

    • 稳定性好
    • 用户体验好
  • 动态化

    • 支持动态化
    • 满足业务需求

常见跨端技术方案

Hybrid 方案

基于 webview 渲染,通过 JS Bridge 把部分系统功能开放给 JS 调用

原生渲染方案

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

  • React Native

自渲染方案

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

  • Flutter

小程序方案

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

  • 微信小程序
  • QQ小程序
  • 支付宝小程序
  • 抖音小程序
  • 钉钉小程序
  • 飞书小程序
  • 头条小程序
  • 百度小程序
  • 快手小程序
  • 美团小程序
  • 360小程序
  • 快应用
  • ……

技术方案比较

基于小程序跨端实践

开发步骤

下载开发者工具

小程序开发&调试

小程序上传

小程序性能优化

小程序性能是指小程序在宿主 APP 中加载和呈现的速度,以及用户交互的响应程度

优化意义

提高用户留存率

提升转化率

改善用户体验

优化手段

启动性能体验优化

  • 减少包体积 - 合理使用分包,及时清理冗余资源,控制静态资源大小
  • 减少同步逻辑 - 优先使用异步 API,避免复杂的计算逻辑
  • 更早的展示首屏数据 - 尽早调用关键 API 和请求,接入数据预取
  • 合理缓存数据 - 网络数据缓存,API 数据缓存
  • 图片优化 - 合理选取图片格式,合理压缩图片,使用 CDN 并开启缓存
  • 其他 - 框架骨架屏,占位组件

运行时性能体验

  • 合理使用 setData - 减少发送频率,动画不使用 setData
  • 合理使用自定义组件 - 合理的拆分组件数量,只注册当前使用的组件,同步修改组件初始 data
  • 合理监听处理事件 - 合理监听处理 scroll 事件,移除非必要的事件绑定
  • 内存优化 - 及时解绑事件监听,及时清理定时器
  • 导航栏适配 - 适当开启自定义导航栏,关键信息避开状态栏和胶囊按钮
  • 分屏适配 - 使用CSS(vh)实现自适应布局