混合工程与持续集成
2021-04-16 本文已影响0人
缪呜
Flutter混合工程中解除Native工程对Flutter的直接依赖的具体解决方法
将Flutter的依赖抽取为一个Flutter依赖库并发布到远程,供纯Native工程引用
图1-1
实现方法
Native工程依赖的Flutter分析
- Flutter库和引擎----Flutter和Framework库和引擎库
- Flutter工程----自己实现的Flutter模块功能,由Dart代码实现
- 自己实现的Flutter Plugin
IOS的Flutter依赖的文件
1.Flutter库和引擎:Flutter.framework
2.Flutter工程的产物:App.framework
3.Flutter Plugin:编译出来的各种Plugin的Framework,以及图1-2中的其他Framework
图1-2
IOS依赖的Flutter库的抽取
flutter-boot脚手架
在工程化设计上,flutter-boot建立了一套标准的工程创建流程和友好的交互命令。在流程执行完成后,即拥有了混合开发的标准工程结构。
在混合栈方面,flutter-boot能自动注入混合栈依赖,同时将核心的混合栈接入代码封装并注入原生工程内。
图1-3 flutter-boot解决问题的详细过程
Add Flutter to existing apps
原生工程和Flutter产生关联的三个部分:
- Flutter的Framework:Flutter Plugin Native、Flutter Plugin Dart
- 业务代码
- 插件库
flutter-boot补充
四个过程
- create
搭建一个Flutter模块,包括Flutter模块的创建和Git仓库的部署。 - link
关联本地的原生工程和Flutter工程。会先请求获取Flutter工程的地址和原生工程的地址,然后将需要手动集成的部分通过脚本的方式自动集成。 - remotelink && update
在远端构建模式下,通过remotelink能够获取Flutter仓库代码,并在远端机器上进行构建。
对于拉取Flutter代码并进行本地部署的过程,称为update过程。 - init
为了便于快速搭建,提供了一个命令集合“init”,将必备的环节以命令行交互的模式集成在了init命令中。