AndroidFlutter

探究Flutter与原生混用的最佳方案

2022-02-09  本文已影响0人  dushiling

前置动作

在接入Flutter之前需要具备一下前置条件:

  1. 易于开发的操作系统(首推macOS)
  2. 配置Flutter开发环境
  3. Android和iOS开发环境(参考官网)

接入方案

业内绝大部分的App都不可能推到重来,所以混合工程的方式接入Flutter是目前主流开发模式,下面简单说说下业界两种工程管理模式:

screenshot.png

统一管理模式(不推荐)

三端分离模式(推荐)

思考

而 Flutter 工程通过 Android Studio 进行管理,无需打开原生工程,可直接进行 Dart 代码和原生代码的开发调试。

三端工程分离模式的关键是\color{Teal}{抽离 Flutter} 工程,将不同平台的构建产物依照标准组件化的形式进行管理,即 \color{orange}{Android 使用 aar}\color{ purple}{iOS 使用 pod}
换句话说,接下来介绍的混编方案会\color{ blue}{将 Flutter 模块打包成 aar 和 pod},这样原生工程就可以\color{OrangeRed}{像引用其他第三方原生组件库那样 }快速接入 Flutter了。

集成Flutter准备

当我们创建一个新的Flutter 工程时,除了一些通用配置外,Flutter还包括 Flutter 工程和原生工程的目录(即 iOS 和 Android 两个目录)。在这种情况下,原生工程就会依赖于 Flutter 相关的库和资源,从而无法脱离父目录进行独立构建和运行。

原生工程对 Flutter 的依赖主要分为两部分:

\color{green}{已经有原生工程}的情况下,我们需要在\color{brown}{同级目录}创建 Flutter 模块,构建 iOS 和 Android 各自的 Flutter 依赖库。这也很好实现,Flutter 就为我们提供了这样的命令。我们只需要在\color{blue}{原生项目的同级目录}下,执行 Flutter 命令创建名为 flutter_module(名字随意起) 的模块即可,命令如下。

flutter create --template module flutter_module

目录层级如下

image.png

开始集成

具体操作参考官网:将 Flutter 集成到现有应用

也可参考我的另外两篇文章:
Flutter-module嵌入iOS原生项目
Flutter-module嵌入Android原生项目

上一篇下一篇

猜你喜欢

热点阅读