[toc]
混编事项说明
一、事项简述
混编
二、混编工程搭建
1、项目本身重构,实现原生混编前提—原生包Flutter
Flutter项目降级成模块,作为原生部分。
- 抽离原生部分,Flutter项目降级成模块:原生项目外移,与Flutter项目同层。
- 修改原生模块依赖配置文件Podfile,引入降级后的Flutter模块。
2、引擎处理
目的:混合栈引擎共享
方案一:使用flutter_boost
- flutter_boost 接入
3、验证接入效果
3.1、验证跳转
三、混编下缓存数据共享
1、Flutter下的SharedPreferences
2、iOS下的UserDefaults
3、Android下的sharedPreferences
四、混编下的路由跳转
1、Flutter下的 fluro
2、iOS下的 CTMediator
3、Android下的 ARouter
1、原生路由实现
2、Flutter路由和原生路由的交互跳转
五、混编下的打包
1、混编下的打包环境变量的修改
六、生命周期修改
原因: Flutter 的 WidgetsBindingObserver RouteAware 失效,必须使用混编下(如FlutterBoost)的生命周期,很多业务需要重新修改确认。
七、混编下的图片资源共享
核心:各平台图片库的图片存储和获取位置自定义
1、Flutter下的 extended_image
2、iOS下的 SDWebImage
3、Android下的 glide
八、组件
1、网络数据共享
1、Flutter上的 dio
2、iOS上 Swift 的 Alamofire 、 OC 的 AFNetworking
3、Android上的 OkHttp
Android主流网络请求开源库的对比(Android-Async-Http、Volley、OkHttp、Retrofit)
网络的重试、缓存
2、图片库
见上文《图片资源共享》部分
3、其他三方库
火山、buglgy、地图等 — 不用重新做
4、UI基础组件
5、开发工具
5.1、日志系统
自定义的监控系统