一尘不染

Flutter-从现有的android项目导入

flutter

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

我可以导入该项目使它颤抖吗?怎么样?

另外,flutter是否支持我在该项目中使用的库?


阅读 245

收藏
2020-08-13

共1个答案

一尘不染

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

摘要

,你不能 转换 您现有的Android代码到 达特
颤振代码,这是必要的,从而实现跨平台的行为,因为被扑SDK使用的所有代码在飞镖被写入。

但是 ,您可以通过将Android代码仅包含在Android文件夹中并 尝试 将其与Flutter
SDK集成来使用您的Android代码,这可能比仅在Dart中完全重写它要耗费更多的工作。这 也不
是您通常要执行的操作,因为使用本机Android和iOS代码以插件的形式启用Flutter无法实现的功能是最有意义的。

还有第三种方法,就是保留您的Android代码,并仅使用Flutter 添加
功能。这很难实现,因为您必须创建一个接口才能从Android代码“切换”到Flutter。使用此功能,您还需要在Flutter或本机iOS中重写iOS的其余部件,这完全无济于事。

细化

有一个很简单的答案。

Flutter 是本机SDK 之上一层这意味着可以 保留您的代码,因为如果您查看Flutter 项目
,就会发现目前可以使用的 结构 基本上是 三种

  • lib对于文件夹 飞镖 代码+文件扑需要例如包括 插件 ,简称: 飞镖代码

  • iOS适用于 Objective-CSwift 代码的文件夹,其中还包含常用的iOS附件

  • android文件夹为任一 的Java科特林 (或C ++)码和所有其他的gradle文件等

这意味着 ,您 可以根据需要 使用 本机代码 ,但不必这样做。

如果需要,可以 在开发过程中完全忽略androidios文件夹

您很有可能只是在本机代码中修改应用程序图标,名称,版本名称,许可证密钥等方面。

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

结论

如果您确实要切换到Flutter SDK,则最好的选择是完全切换到Flutter,即 重写 Dart中的 所有功能。

没有将Android代码“转换”为Flutter代码的“导入”可能性。如果它们是用相同的语言编写的,这甚至不起作用,因为Flutter架构完全不同,并且构建应用程序的方式与Android应用程序没有远程关联。

如果您认为学习Dart并为跨平台重写应用程序不值得,但仍希望获得iOS支持,那么我建议您使用iOS本机编写,但是我对此问题的一般建议是在Dart中重写整个应用程序。

2020-08-13