1.是否需要组件化
为什么需要组件化
- 模块间解耦
- 模块重用
- 提高团队协作开发效率:两个业务线以上。
- 便于单元测试
哪些项目不需要组件化
- 项目较小,模块之间交互简单、耦合少
- 模块没有被多个外部模块引用,只是一个简单的小模块
- 模块不需要重用,代码也很少被修改
- 团队规模小
组件化的方案
CocoaPod
Target-Target
组件生命周期的管理
TODO:
GitHub - DevDragonLi/ZDModuleKit: ZDModuleKit:组件生命周期管理,解决项目组件化解耦宿主工程派分事件
TODO:需要详细看和分析。
扩展:
组件通讯方案(中间件)
GitHub - DevDragonLi/ProtocolServiceKit: iOS组件通信中间件(Protocol Service),Adapter Swift/Objective-C
1.URL Router:
优点:方案成熟,极高的动态性:
2.Target-Action
修改,已经有Swift版本,CTMediator
3. Protocol-Class
是url的优化版;
https://github.com/alibaba/BeeHive/blob/master/README-CN.md
模块化
整体的架构遵循的基本原则:
- 越底层越稳定。
- 上层依赖下层,下层不能反向依赖上层。
- 同层组件尽量不要相互依赖,除了业务组件通过路由进行通信。
- 业务组件尽量功能内聚,减少跨组件的交互,可以适当容忍代码上的重复以避免不必要的耦合。
iOS端组件化整套技术方案开篇概述【1】_哔哩哔哩_bilibili
多仓库管理: