Flutter 项目的城市飞艇集成?

Urban Airship integration for Flutter project?

我们的团队刚刚开始比较 Xamarin 和 Flutter。从一开始,Flutter 似乎较新(不那么久经沙场),但在 hot-reloading and dual native output. On the battle-hardened front, however, Xamarin integration with Urban Airship is well-documented 等细节方面却更加性感。这是我们项目的症结所在,因为 Urban Airship 是一项要求,因此我们倾向于 Xamarin。

但为了公平地对待 Flutter,我想我会问:如何将 Urban Airship 集成到 Flutter 项目中? (显然需要同时使用 Android 和 iOS。)

我的 google-fu 到目前为止并不乐观。

Flutter 与本机、特定于平台的库交互的解决方案是 plugins。这是一个可重用的包,主要包含 Dart 代码、一些 swift 或 objC 代码、一些 java 或 kotlin 代码、一个 sample/test flutter 应用程序和一些单元测试。 Dart 代码定义了一个公共接口,其他语言代码提供了到各个平台的绑定,在您的情况下,供应商提供了库。 IDE 将为您创建一个完整的插件工作模板,并且有很多示例可以从 pub 中获取灵感。

您在实施 ios 本机代码时使用 xcode,在实施 android 特定代码时使用 android studio(或 IDEA)。幸运的是,由于您只是编写了一些绑定,因此本机代码通常相当薄。

通常 Dart 代码调用本地方法,但反之亦然。本机代码也可以生成事件。 Flutter 负责转换 Dart 参数和 return 值 to/from 原生值,并支持简单类型、Lists、Map 等

您团队中熟悉两个平台上的供应商库的人应该能够定义通用 Dart api(您使用的功能子集)并实现本机绑定。该插件处理其余部分。