超简单, iOS原有项目快速集成flutter
iOS原有项目集成flutter
目前官方已经提供了flutter module的集成到iOS项目的文档;
适用:flutter create -t module my_flutter创建的项目
优点:
1.这种方式可以热重载UI调试
2.可以iOS原生和flutter一起开发
缺点:
1.每个人都需要配置Flutter环境;
2.每个人都要拉取Flutter项目代码;
3暂时只能集成flutter module的项目,无法集成flutter app项目
参考文档:https://github.com/flutter/flutter/wiki/Add-Flutter-to-existing-apps#experiment-integrate-flutterviewcontroller
本文介绍另一种iOS项目集成Flutter的方式
优点:
01可以把Flutter和ios项目完全隔离开来,
02.iOS小组不再需要 搭建Flutter环境;
缺点:
是只能flutter开发调试完成,然后发给iOS原生项目使用
适用:
flutter create my_flutter_app创建的项目
1 flutter小组导出.framework和资源文件;
build_for_ios.sh文件在这里获取https://www.jianshu.com/p/700bd7d2122b
01把build_for_ios.sh复制到flutter项目根目录,
02在终端cd到flutter根目录,输入"./build_for_ios.sh"回车
03稍等片刻,所有产物都copy到build_for_ios文件夹
2.ios小组导入.framework和资源文件;
01,直接把build_for_ios文件夹下所有项目拉到ios项目
WX20190227-140656.png
02其中flutter_assets一定要选择create folder references模式
并且flutter_assets只能放iOS项目根目录, 其他文件可以放任意目录
WX20190225-125532.png
03ios项目的targets选择当前target ->Build Phases ->加号 ->Copy Files ->把从build_for_ios文件夹拉进项目的framework都添加上
同时: 检查Copy Bundle Resources里是否包含了flutter_assets
WX20190225-134409.png
至此集成完毕
虽然这样也是可以的, 但感觉还是有些麻烦,
最好是把build_for_ios文件夹所有的文件pod到远端,
这样iOS项目通过pod的方式集成flutter, 更简洁些~
参考:
https://www.jianshu.com/p/700bd7d2122b (flutter一键打包)
https://www.jianshu.com/p/b319b373e82b (上传至git仓库,iOS可以pod引入)
ios原生如何跳转Flutter
在控制器中添加以下代码 跳转flutter模块
//先导入 GeneratedPluginRegistrant
//#import <DATKFlutterSDK/GeneratedPluginRegistrant.h>
//然后就可以创建FlutterViewController 直接跳转
FlutterViewController* flutterViewController = [[FlutterViewController alloc] init];
[GeneratedPluginRegistrant registerWithRegistry:flutterViewController];
[self.navigationController pushViewController:flutterViewController animated:YES];