前言
为什么要组件化
随着项目的不断迭代,各个模块会越来越复杂,各个模块相互依赖,而且每个模块可能会有共同的业务逻辑,导致整个项目维护起来比较麻烦。
可以采用组件化,把每个业务逻辑和模块分离,单独管理,这样比较方便维护,各个开发人员只需要关心好自己的模块就好了。
组件化好处
分工更加明确,提高开发效率
复用性更好,能迅速的组成更多的App
组件化思想
就好比封装控件,复杂的控件一般都会封装,组件化只不过是把每个模块单独抽出来,作为一个小工程,然后在组成一个一个完整的项目。
组件化原则
一个项目主要分为3层:业务层、通用层以及基础层,在进行组件化时,有以下几点说明
只能上层对下层依赖,不能下层对上层的依赖,因为下层是对上层的抽象
项目公共代码资源下沉
横向的依赖尽量少有,最好下沉至通用模块,或者基础模块
APP组件化模块规划:
基础层
HKPublicLibs作为基础层组件,包含其他好用三方库,宏定义,分类等文件
HFMyRouterExtension作为各个库之间的组件访问及跳转,里面引用了CTMediator作为中间跳转库(CTMediator作为一个通讯中枢),https://www.jianshu.com/p/dd3a26b9092b可以通过这个了解CTMediator的原理
s.dependency 'CTMediator' #依赖的第三方库
通用层
HKStaffAppPublicLibs作为通用层组件,其作用就是承上启下,上:业务层可以访问公共控件,网络配置等可以抽离出来的功能方法.下:可以访问底层的网络库,基础分类(访问HKPublicLibs库里的组件)
业务层
根据APP的需求规划,目前大体划分四个主要模块:
首页组件:HKHomeKit
服务组件:HKServiceKit
我的组件:HKMineKit
登录组件:HKLoginKit
集成工具
使用cocoapods管理组件化开发https://blog.csdn.net/weixin_33901926/article/details/87987437,可以切换组件到本地开发,测试完成后再发布版本正式引用