背景:
现在Flutter火热,各个公司都会尝试使用Flutter开发,一般采用的都会是混合形式的开发,混合开发目前Flutter官方提供的不太完善、iOS和Android有差异性、接口也不同意、很麻烦,也有一些大厂为了实现高效率高可用自己实现一套混合开发技术,比如闲鱼的flutter_boost和哈罗的flutter_thrio。两者之间优缺点及设计原理、架构等后续再来分析。接下我们先说下flutter_boost在iOS项目中的接入混合实践。
准备工作:
1.Flutter SDK
为了便于后续我们flutter sdk版本的快速切换,我们需要安装管理工具,方便我们在后续开发或者调试过程中快速切换版本。
这里推荐使用的Flutter SDK管理工具fvm,能快速切换版本,具体不做介绍,直接去查看文档就可以,很详细。
安装自己所需的flutter sdk版本(我这里安装的是1.17.1版本,因为需要跟下边的flutter_boost版本对应):
2.flutter_boost框架
了解混合框架flutter_boost,首先需要知道我们需要使用他们的那个版本及版本对应的flutter sdk版本,比如:flutter_boost:v1.17.1-hotfixes 对应的flutter sdk:1.17.1 。
正式接入:
一、flutter_module工程
1.创建空文件夹后,使用命令:
flutter create -t module flutter_module
如果iOS使用的是Swift开发使用命令:
flutter create -i swift -t module flutter_module
2.flutter_module创建完成后,打开flutter_module文件夹下pubspec.yaml
文件。如下:
注意:这里我用的flutter_boost的SDK最新版本:v1.17.1-hotfixes
3.cd到flutter_module文件夹下,执行命令:
flutter packages get
包下载完成后flutter_module工程基本配置已经完成。
二、iOS原生工程
1.创建iOS项目
注意:iOS工程根目录与flutter_module根目录平级。
2.cd到iOS工程目录下创建Podfile文件,执行命令:
touch Podfile
生成文件,然后可以使用vim Podfile
编辑或者直接open Podfile
或者直接打开文本编辑也可以。
在文件中添加
flutter_application_path = '../flutter_module'
load File.join(flutter_application_path, '.ios', 'Flutter', 'podhelper.rb')
install_all_flutter_pods(flutter_application_path)
3.执行 pod install
下载依赖库。
4.配置项目
如果是OC工程,则不会要做什么额外处理,如果是Swift项目需要建个桥接文件FlutterHybridiOS-Bridging-Header.h
,同时Build Sttings中需要配置该文件路径。
注意:
(1).看其他博客出现过,查看Build Phases中是否存在Flutter Build Script的脚本,如果不存在需要添加对应脚本,但是目前我没出现缺失的情况。
"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh" build
"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh" embed
三.代码接入实践
这块可以直接下载flutter_boost官方例子OC,flutter_boost官方例子Swift查看具体实践,其中O