Pano Flutter SDK 设计经验与实践浅谈

本文分享了Pano Flutter SDK的设计思路和实践经验,探讨了如何处理Flutter与原生SDK的交互,包括平台通道、事件流通信、原生视图设置,并给出了具体的工作流程和解决方案,旨在帮助开发者更好地理解和使用Pano Flutter SDK。
摘要由CSDN通过智能技术生成

Flutter 是谷歌推出的移动 UI 框架,可以快速在 iOS 和 Android 上构建高质量的原生用户界面,被越来越多的开发者选择和使用。拍乐云也提供了功能强大的 Pano Flutter SDK,性能稳定且易用,覆盖语音通话、视频通话、互动白板、互动直播、云端录制等各种功能。在之前的一篇《Pano Flutter SDK 全新发布》中,我们给大家介绍了SDK的详细接入流程,今天将继续聊聊我们 Pano Flutter SDK 的设计思路与实践经验。

#1

总体结构

Pano 针对原生应用开发提供了完备的高性能SDK,所以 Pano Flutter SDK 采用插件包的形式来封装我们的SDK。类似的,在 RN 中我们采用 NativeModule 来实现 Pano RN SDK。Pano 移动端跨平台 SDK 的总体结构如下图所示:

在这里插入图片描述

SDK 分为三层结构,底层为 Pano 原生 SDK(iOS&Android)。基于原生SDK 之上为桥接层,由于 Flutter 与 RN 中与原生层通信均为异步通信,且需使用特定的通信方式(Flutter 使用平台通道方案,RN 则使用原生模块方案),所以需要将跨平台调用进行转换才能调用原生 SDK 方法。因此桥接层将分为两个部分,原生 SDK 桥接与跨平台(Flutter&RN)桥接,以达到最大化代码复用的目的,将原生 SDK 接口二次封装成通用异步接口,在其上分别对接 Flutter 和 RN 的通信接口。SDK 最顶层则为跨平台层,对接原生层通信接口封装出 Flutter 或 RN 平台的功能接口。

虽然最终的结构比较简洁明了,但是由于 Flutter 或 RN 对于视图更新机制与原生开发存在较大差异,以及跨平台层与原生层数据结构的不同等问题,导致 SDK 的设计与实现中存在许多涉及数据转换、对象映射、内存管理等难点或坑点,接下来将结合 SDK 的设计思路与实践经验,针对其中几个典型的问题谈谈解决方案或需要注意的地方。

#2

工作流程

Pano Flutter SDK 提供的 API 基本上与原生 SDK 保持一一对应的关系,以便开发人员可以轻松的将对接原生 SDK 开发经验应用到 Flutter 中。但由于 Flutter 特殊的平台通道(Platform Channel)方案以及视图更新机制,所以并不是简单的将原生 SDK 接口进行透传封装,SDK 的调用流程如下图所示:

在这里插入图片描述

SDK 使用 Flutte

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值