混编事项说明

[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 的 AlamofireOC 的 AFNetworking

3、Android上的 OkHttp

Android主流网络请求开源库的对比(Android-Async-Http、Volley、OkHttp、Retrofit)

网络的重试、缓存

2、图片库

见上文《图片资源共享》部分

3、其他三方库

火山、buglgy、地图等 — 不用重新做

4、UI基础组件

5、开发工具

5.1、日志系统

自定义的监控系统

九、桥接—-Flutter方法

End