android - Flutter - 从现有的 android 项目导入

我目前正在开发一个已完成约 75% 的 android 项目。我需要一个类似的 iOS 应用程序。

我可以导入这个项目来 flutter 吗?怎么样?

另外,flutter 会支持我在这个项目中使用的库吗?

最佳答案

Flutter 应用程序的工作方式完全不同,即不像 Android 也不像 iOS。 Flutter 有自己的架构,因此也有自己的插件等。

总结

,您不能将现有的 Android 代码转换为 Flutter 的 Dart 代码,这是启用跨平台行为所必需的,因为所有Flutter SDK 使用的代码必须用 Dart 编写。

然而,您可以使用您的 Android 代码,只需将其包含在 Android 文件夹中并尝试将其与 Flutter SDK 集成,这可能就是全部不仅仅是在 Dart 中完全重写它,还有很多工作要做。这也不是您通常想要做的,因为原生 Android 和 iOS 代码最适合用于启用 Flutter 无法实现的功能,形式为 plugins .

还有第三种方法,即你保留你的 Android 代码,并且只在 Flutter 中添加功能。这更难实现,因为您必须创建一个接口(interface)才能从 Android 代码“切换”到 Flutter。使用这个你还需要在 Flutter 或原生 iOS 中为 iOS 重写剩余的部分,这对你没有任何帮助。

细化

对此有一个非常直接的答案。

Flutter 是原生 SDK 之上的一个这意味着可以保留你的代码,因为如果你曾经看过一个 Flutter 项目,你会发现其中有,目前,基本上三种结构您可以使用:

  • lib 文件夹,用于存放 Dart 代码 + Flutter 需要的文件,例如包括插件,简称:Dart 代码 用于 Flutter

  • iOS 文件夹,用于存放 Objective-CSwift 代码,其中还包括常用的 iOS 配件

  • android 文件夹,用于存放 JavaKotlin(或 C++)代码以及所有其他 gradle 文件等。

这意味着如果你愿意,可以使用 native 代码,但你不需要这样做。

如果你愿意,你可以在开发过程中完全忽略androidios文件夹`

您很可能只是在 native 代码中修改应用图标、名称、版本名称、许可证 key 等方面。

Flutter目标是在 Dart 中编写所有代码,并且只在 Flutter SDK 中编写,这意味着您现有的 Android 代码可以被包含在项目中,但它对 iOS 没有任何用处,因为所有跨平台工作都是在 Dart 中使用 Flutter SDK 完成的.

结论

如果你真的想切换到 Flutter SDK,最好的选择是完全切换到 Flutter,即重写 Dart 中的所有功能。

没有将 Android 代码“转换”为 Flutter 代码的“导入”可能性。如果它们是用同一种语言编写的,这甚至都行不通,因为 Flutter 架构完全不同,而且您构建应用程序的方式与 Android 应用程序没有远程关系。

如果你认为学习 Dart 并为跨平台重写你的应用程序不值得但你仍然想要 iOS 支持,我建议你用 iOS 原生编写,但我对这个问题的一般建议是重写整个应用程序在飞镖中。

https://stackoverflow.com/questions/49461746/

相关文章:

Flutter - 自定义字体不显示

flutter - Flutter 的垂直文本小部件

flutter - 小部件间通信

flutter - 无效参数 : Illegal argument in isolate messa

flutter - 使容器小部件垂直填充父级

android-studio - 如何找到 Flutter SDK 的路径

flutter - 导航后打开 flutter 对话框

dart - 在 Flutter 中将焦点滑动到 TextField

flutter - Flutter AppBar 上的渐变背景

ios - Flutter - SWIFT_VERSION 必须设置为支持的值