首先要规划项目的整体架构:
项目的整体架构并不是所谓的MVC还是MVVM,在我看来,这些只是代码组织的方式,严格意义上来说并不属于项目架构,项目架构需要你站在更高的维度去看事情,规划项目如何去分层;其实一个项目的架构设计与产品的设计仅仅相关,业务层的代码划分为业务层,第三方库属于通用层,我们可以根据业务层对代码的依赖层度来划分,理所当然业务层就应该在最上面,通用层的代码在最下面,如图:
图中又多出来两次,中间层和通用业务层,通用业务层就是可以分别给业务层使用的业务编码;中间层的作用就是协调和解耦的作用,协调组件间的通信,解除组件间的耦合,它要做的也就是我们常提到的组件通信方案;
然后就来谈一下基础组件的管理。基础组件大概有下面几种:
一、项目中可能会依赖很多第三方开源库,比如AFNetworking、SDWebImage等,这些都是开源框架上的项目,它们都是对系统API进行封装,并不依赖于业务,我们可以把它们归到基础组件中,推荐使用cocoapod来管理这些库
二、在一些比较大的公司或对要求比较高的公司往往会对一些三方库进行二次开发,来满足一些特殊需求或者弥补一些缺陷,那么这些二次封装的库也可以放到通用层,推荐使用本地私有库,利用cocoapod进行管理
三、在开发业务时,我们也可以从业务代码中抽取一些可以通用的东西,比如自定义弹框、滑动效果图等等&#