滴滴开源 Flutter 混合开发框架 Unify


滴滴近日开源了自研 Unify 框架,旨在解决大规模跨端落地场景下,Flutter 与原生模块之间的通信问题。Unify 通过平台无关的模块抽象、灵活的实现注入、自动代码生成等特性,为开发者提供高效、灵活、易用的 Flutter 混合通信能力。

开源地址:https://github.com/didi/Unify

Unify 是一个 Flutter 混合开发框架,由滴滴出行国际化外卖团队自研,目前已经广泛应用于滴滴国际化外卖及国际化出行业务。

Unify 的亮点特性包括:

  • 平台无关的模块抽象: 允许开发者使用 Dart 语言声明与平台无关的模块接口与实体。
  • 灵活的实现注入: 开发者可以灵活地选择注入原生实现(Android/iOS)或 Flutter 实现。
  • 自动代码生成: 借助强大的代码生成引擎,Unify 可以自动生成 Flutter、Android、iOS 多平台下统一调用的 SDK。

下面是一个使用 Unify 声明原生模块的示例:

@UniNativeModule()
abstract class DeviceInfoService {
Future<DeviceInfoModel> getDeviceInfo();
}

通过 Unify,上面的 Dart 接口可以自动映射到 Android 和 iOS 平台,开发者只需专注于各平台下的具体实现即可。在 Flutter 中使用时,调用方式就像普通的 Flutter 模块一样简单、直观:

DeviceInfoService.getDeviceInfo().then((deviceInfoModel) {
print("${deviceInfoModel.encode()}");
});

Unify 的整体原理如下:

Unify 能够很好地解决 Flutter 混合开发下的一些常见问题,例如:

  • 大量原生模块高效导入 Flutter
  • 大量 Flutter 模块高效导入原生
  • 解决大量 Channel 难以维护的问题
  • 原生与 Flutter 并存下的混合架构分层

详情查看 https://github.com/didi/Unify/blob/master/README.zh-CN.md


相關推薦

2023-09-22

掉? OpenHarmony SIG 组织在 Gitee 开源了兼容 OpenHarmony 的 Flutter。该组织主要用于孵化 OpenHarmony 相关的开源生态项目。 ▲ 仓库地址:https://gitee.com/openharmony-sig/flutter_flutter 根据 README 的描述,此仓库是基于 Flutter SDK 对 OpenHarmo

2022-12-10

ull 很可能从非空安全的库污染到空安全的代码。 Dart 和 Flutter 的产品经理 Michael Thomsen 在博客文章中解释道: 我们的下一个版本,也就是 Dart 3,将完成一个完全健全的空安全语言的开发。作为这项开发工作的最后一步,我

2023-11-30

2023年11月27日晚间,滴滴因系统故障导致App服务异常,不显示定位且无法打车。11月27日晚,滴滴出行进行了回复:非常抱歉,由于系统故障。 2023年11月28日早间,滴滴出行消息称,网约车等服务已恢复,骑车等在陆续修复中。11

2022-05-12

谷歌宣布推出  Flutter 3。Flutter 3 完成了谷歌从以移动为中心到多平台框架的路线图,提供了 macOS 和 Linux 桌面应用程序支持,以及对 Firebase 集成的改进、新的生产力和性能特性,并支持 Apple Silicon。 公告指出,Flutter 3 是谷歌

2022-02-16

不知道夜莺是什么,附下面一段介绍: 夜莺最初是由滴滴开源,其开发团队和Open-Falcon的开发团队是一拨人,随着云原生的流行,夜莺逐渐专注到云原生的监控领域,和Prometheus生态紧密结合,姑且可以看做是Prometheus的一个企

2023-07-27

抓包工具,支持Windows、Mac、Android、IOS, 全平台系统, 使用Flutter框架开发 支持手机扫码连接,不用手动配置Wifi代理,包括配置同步。所有终端都可以互相扫码连接转发流量。 默认Https不是开启的,需要点击加锁图标安装根证书

2023-11-25

后九年里,他一直致力于打造跨平台应用程序开发框架 Flutter。 希克森写道,Flutter 是“老谷歌人”最后推出的项目之一,属于 Larry Page 在 Alphabet 创建前不久发起的一系列雄心勃勃的实验的一部分。Flutter 团队基本上也像一家

2024-11-01

确保大多数参与者能从中获利。 尽管跨平台解决方案如 Flutter 和 React Native 能够释放折叠时间,但它们也存在局限性,因为框架的使用可能导致长期依赖和技术限制。因此,采用混合开发方法,结合原生应用和 Web 技术,在利用

2023-02-02

经典 PHP 框架 Laravel 现已更新到 9.49 版本,带来以下更新: 添加 添加 Illuminate/Database/Schema/ForeignKeyDefinition::noActionOnDelete()( #45712 ) 向 HTTP 客户端添加了新的 throw 辅助方法 ( #45704 ) 添加了对 WorkCommand 输出时间戳的可配置时

2023-05-25

备作为 target Arm64 即将推出其他解决方案,例如 GNU GCC、Flutter & Dart、PyTorch、GIMP 让 Windows 11 开发者都能成为 AI 开发者 去年在 Build 大会上,微软宣布了一种新的开发模式 Hybrid Loop,可以跨 Azure 和客户端设备实现混合 AI

2022-09-01

Flutter 3.3 现已发布,此版本专注于完善和性能改进,以强化三个月前发布的 Flutter 3 中所提供的功能。自 Flutter 3 发布以来,Flutter 已经合并了 5,687 个 PR。此版本通过几个新组件和一些错误修复扩展了对不断发展的 Material 3 规范

2023-08-19

Flutter 3.13 现已发布,并包含 Dart 3.1。自上次发布以来的三个月时间内,此版本共合并了 724 个 PR。一些更新亮点包括: Engine 对 Impeller(新图形渲染器)进行了多项改进,并为可折叠设备添加了新的引擎 API。 Impeller iOS 性能改

2023-05-11

Flutter 3.10 现已发布,此版本包括了对 Web、mobile、图形、安全性等方面的许多改进。 一些更新亮点包括: Material 3:Material 库现在符合最新的 Material Design spec,变化包括新组件和组件主题、更新的组件视觉效果等。开

2022-03-02

微软方面发布了关于支持用 Flutter 开发可折叠设备的更新公告。此前,他们曾向用户展示了在 Flutter Framework 和 Engine 上打开的 PR。目前,Engine PR 已合并;最初的 Framework PR 则被拆分成更小的 PR,其中一些也已被合并。 图