组件化大体思路
框架说明:
- 持续集成: 主工程(壳工程),包含所有内容,用于发布打包等
- 基础组件: 不依赖其他任何组件,独立完成功能。主要有:与业务无法的功能(如string或data的加密,category的封装)对第三方库的封装(如AFNetworking,SDWebImage的封装)
- 业务公用组件: 依赖基础组件或UIKit等系统组件,创建业务共同使用的功能(如分享,支付,网络访问)
- 中间组件: 连接业务公用组件和业务组件,及业务组件之间的互相调用。(如Mediator的组件)
- 业务组件:单独的业务功能,不依赖其他业务组件。
##基础组件:
没有业务场景 不允许依赖业务组件
###公共基础
多项目可用
###非公共基础
ProjectA依赖,但是ProjectB不依赖
桥接层
- 桥接层的主要作用是为上层业务层和下层基础框架层做桥接,主要考虑底层业务层的开放接口变动频繁以及不适配上层业务。
- 想要达到每个组件之间相对低耦合,比较常用的方案就是断掉横向依赖,使用中间人模式将依赖下沉至中间件,而且组件对中间件是单向依赖
##业务组件
业务之间不允许相互依赖
隐性依赖库 -> Podfile.lock
##过程
开源组件->基础组件->平台中间件->业务组件->壳工程
副作用:因为多库开发在发布与集成时 很多依赖冲突lock文件冲突
自动发版与自动集成
壳工程分离