dart - 我们可以使用 Flutter/Dart 拥有应用共享服务器(API)和客户端代码(iOS/Android/Web)吗?
问题描述
由于 Flutter 已经为 Android 和 iOS 应用程序采用了共享库的方法;是否可以将此想法扩展为使用 Dart 添加服务器 (API) 代码和使用 Angular-Dart 添加 Web 内容?我可以看到共享服务器和客户端代码的示例,并且可以看到共享Android 和 iOS 代码(Flutter) - 是否有任何在 iOS、Android、Web 和 API 代码之间共享业务逻辑的示例?类似于kotlin-multiplatform 的东西?
解决方案
只需将您的代码移动到另一个 Dart 包中
不依赖(直接或传递)
dart:ui
(扑)dart:html
或 Angular(浏览器)dart:io
(服务器或控制台)
当您在特定平台上使用与平台无关的代码时,需要对其中之一的依赖项进行抽象然后注入(作为参数传递)的所有内容。
您实际上可以在服务器和 Flutter 之间共享依赖的代码,dart:io
但这种依赖会阻止代码在浏览器中使用。
也可以看看
在我正在处理的一个项目中,我在共享包中有built_value
模型类和built_redux
(动作、reducers、状态),并在 Flutter 和 Angular 中使用它。
主要的痛点是 Firebase,需要抽象整个 Firebase API,因为 Angular 和 Flutter 使用不同的 Firebase 包。这不是太难,但很麻烦。有人尝试创建一个提供这种开箱即用抽象的包,但我不知道进展情况。
推荐阅读
- python - 我试图从 Django 中的模型中聚合属性的总和
- javascript - 不显示产品标题
- java - Spring Webflux Netty - HttpProxyConnectException 503 服务不可用,但为谁服务?
- php - 是什么导致此 Laravel 8 应用程序中的用户访问错误?
- graph - 如何创建一个特殊的图表?
- deep-learning - 遍历torch._C.Graph中的节点
- google-chrome - 使用“host-resolver-rules”运行 ChromeDriver 在本地工作,但在 Heroku 上失败
- flutter - 已解决:Flutter Provider:在更改屏幕时消失数据
- elasticsearch - 使用 Elastic 搜索不同的搜索网站
- javascript - 无法弄清楚正确编辑 JS 对象的算法