使用Flutter Rust Bridge进行跨平台开发

本文详细介绍了如何使用Flutter Rust Bridge结合Rust进行跨平台开发,以解决特定平台功能需求。通过实例展示了如何配置Rust和Flutter项目,创建绑定代码,以及如何从Flutter调用Rust代码获取设备电池信息。文章强调了Rust的安全性和广泛平台支持,以及对比其他平台特定语言的优势。
摘要由CSDN通过智能技术生成

有时,在跨平台开发中,我们需要在特定于平台的基础上执行某些代码。 对于 Flutter 应用程序,我们可以利用丰富的插件库来使用许多平台的原生功能,而无需编写自己的实现,因此这可能不会太令人畏惧。

然而,随着我们的需求变得越来越小众,我们可能会发现不存在可以利用某些功能的插件。 这时我们需要考虑编写自己的特定于平台的代码。

您所针对的平台已经具有可用于实现该功能的语言。 例如,在 Android 上,您可以使用 Kotlin 或 Java,而在 Windows 上,您可以使用 C++。

因此,我们需要回答的第一个问题是:为什么我们会考虑使用 Rust 作为我们的平台特定语言?

跳跃前进:

  • 将 Rust 与 Flutter 结合使用的案例

  • 如何使用 Rust 和 Flutter Rust Bridge 解决这些问题

  • 创建我们的 Flutter Rust Bridge 项目

将 Rust 与 Flutter 结合使用的案例

假设我们需要获取用户当前使用的设备的当前电池电量。 如果没有提供此功能的插件,我们至少需要考虑两件事:

  • 我们的原生代码和Flutter之间如何传输数据

  • 特定于平台的语言(如 C++/Kotlin/Swift/等)

现在让我们逐一探讨这些挑战。

原生代码和Flutter之间传输数据

如果我们有大量数据要在 Flutter 应用程序如何在WhatsApp上发送即时视频消息(最新功能)和本机代码之间传输,我们需要创建绑定来来回传输数据。 这个过程涉及相当多的样板文件,当我们的实现发生变化时,必须更新这些绑定可能会令人沮丧且耗时。

幸运的是,有一个 名为 Pigeon 的软件包 可以为开发人员自动完成大部分工作。 这对我们的情况有帮助吗?

快速浏览一下 Pigeon 支持平台的文档,我们会发现 Pigeon 支持生成以下内容:

  • 适用于 iOS 的 Objective-C 代码( 可用于 Swift )

  • 适用于 iOS 的实验性 Swift 代码

  • Android 的 Java 代码(可通过 Kotlin 访问)

  • 适用于 Android 的实验性 Kotlin 代码

  • 适用于 Windows 的实验性 C++ 代码

Despite the uptake of Kotlin and Swift on the targeted mobile platforms, Pigeon support for these platforms is still in an experimental phase.

对于移动应用程序来说,这并不是什么大问题,因为您可以从 Kotlin 调用 Java 代码,从 Swift 调用 Objective-C 代码。 这允许您在应用程序中利用生成的 Pigeon 代码。 然而,桌面和网络应用程序是另一回事。

Pigeon 对 Windows 的支持是实验性的,如何修复Windows 11上的硬盘问题(4种方法)对 Linux 的支持尚不存在。 如果您希望将应用程序投入生产,那么使用实验性生成器并不是一个好主意。 对于 Linux 或 Web,您无论如何都会回到手动编写平台绑定。

如果您正在编写一个针对许多平台的应用程序,这可能会成为一件苦差事,特别是如果您的应用程序针对的是 Pigeon 支持处于实验阶段或不存在的平台。 这不是一个无法管理的工作量,但它仍然是一个工作量。

使用特定于平台的语言的缺点

Flutter 本质上是一种跨平台语言 。 这意味着一些编写 Flutter 应用程序的人可能不会遇到真正的特定于平台的语言,例如 Kotlin 或 Swift。

在这些情况下,在 StackOverflow 中搜索实现并尝试猜测方法并不困难。 Kotlin 和 Swift 将为您管理内存,当对象不再被访问时将其销毁,因此更难(尽管并非不可能)引入内存泄漏。

在 Windows 和 Linux 上,这是一个完全不同的主张。

要实现本机功能,您必须使用 C++。 由于 Pigeon 支持在 Windows 上是实验性的,并且在 Linux 上不存在,因此您不仅必须使用您可能不理解的语言编写特定于平台的代码,还必须使用绑定代码。

让这个命题变得更加困难的是,趣知笔记 - 分享有价值的教程!你必须管理自己的记忆并跟踪自己的参考资料。 最重要的是,在本机层发生的任何未捕获的异常都会导致您的应用程序在桌面上崩溃。

简而言之,即使您可以创建绑定代码,如果您是初学者,您也只会绑定到可能非常不安全的代码。 这不是很吸引人。

如何使用 Rust 和 Flutter Rust Bridge 解决这些问题

要在 Flutter 项目中使用 Rust,我们必须利用 社区制作的 flutter_rust_bridge包 。

该软件包具有广泛的平台支持,包括 Android、iOS、Windows、Linux、macOS 和 Web。 因此,无论您的目标平台是什么,您都可以使用 Rust 和 Flutter Rust Bridge。

快速回顾一下 Rust 和 Flutter Rust Bridge 的好处,它成为一个非常引人注目的案例。

首先,Flutter Rust Bridge 会为您生成所有绑定代码,并支持异步操作࿰

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pxr007

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值