首页 > 解决方案 > 我们可以使用 Flutter/Dart 拥有应用共享服务器(API)和客户端代码(iOS/Android/Web)吗?

问题描述

由于 Flutter 已经为 Android 和 iOS 应用程序采用了共享库的方法;是否可以将此想法扩展为使用 Dart 添加服务器 (API) 代码和使用 Angular-Dart 添加 Web 内容?我可以看到共享服务器和客户端代码的示例,并且可以看到共享Android 和 iOS 代码(Flutter) - 是否有任何在 iOS、Android、Web 和 API 代码之间共享业务逻辑的示例?类似于kotlin-multiplatform 的东西?

标签: dartflutter

解决方案


只需将您的代码移动到另一个 Dart 包中

不依赖(直接或传递)

  • dart:ui(扑)
  • dart:html或 Angular(浏览器)
  • dart:io(服务器或控制台)

当您在特定平台上使用与平台无关的代码时,需要对其中之一的依赖项进行抽象然后注入(作为参数传递)的所有内容。

您实际上可以在服务器和 Flutter 之间共享依赖的代码,dart:io但这种依赖会阻止代码在浏览器中使用。

也可以看看

在我正在处理的一个项目中,我在共享包中有built_value模型类和built_redux(动作、reducers、状态),并在 Flutter 和 Angular 中使用它。

主要的痛点是 Firebase,需要抽象整个 Firebase API,因为 Angular 和 Flutter 使用不同的 Firebase 包。这不是太难,但很麻烦。有人尝试创建一个提供这种开箱即用抽象的包,但我不知道进展情况。


推荐阅读