iOS 组件化架构及创建私有项目组件

一、组件化架构的产生

        随着移动互联网的不断发展,很多程序代码量和业务越来越多,现有的单一式架构已经不能满足公司发展的需求,很多项目都面临着无法继续迭代或迭代成本很高,而不得不重构的问题。

           我在以前的工作中许多工作任务就是重构项目。单一式架构的问题主要体现在:

           1.业务模块间划分不清晰,模块之间耦合度很大,非常难维护。

           2.所有模块代码都编写在一个项目中,测试某个模块或功能,需要编译运行整个项目

           3.多个项目使用同一功能模块,集成过程困难。


二、项目组件化

        项目组件化就是将项目中的各个模块按照基础组件、功能组件、业务组件等划分成一个个单独的模块,以使的各个模块间实现低耦合,可以单独开发、测试、组合运行。


三、项目组件化好处

        1.业务划分更佳清晰,新人接手更佳容易,可以按组件分配开发任务。

        2.项目可维护性更强,提高开发效率。

        3.更好排查问题,某个组件出现问题,直接对组件进行处理。

        4.开发测试过程中,可以只编译自己那部分代码,不需要编译整个项目代码。

        5.方便集成,项目需要哪个模块直接通过CocoaPods集成即可。


四、私有索引库

        私有索引库:分为本地私有索引库和远程私有索引库,他们是相互对应的。

        私有索引库的作用是保存   .podSpec 文件,当使用 pod search -- 时,pod 首先会在本地的索引库中进行搜索,当本地的索引库中不存在时,会到远程索引库中进行搜索。


        1.本地私有索引库

        安装 CocoaPods 的电脑都会在工作目录中自动生成索引库文件夹。它对应CocoaPods 的远程索引库。在mac电脑下的目录为:/Users/kylin/.cocoapods/repos/master/Specs 。(注:kylin->对应自己的用户目录名)

iOS 组件化架构及创建私有项目组件

        

        创建私有索引库可以选择 Github 的私有代码仓库(需要购买)、码云、coding码市等。


        2.远程私有索引库

        本文以coding为例。

        a.创建远程私有索引库,复制仓库地址。

        iOS 组件化架构及创建私有项目组件

        b.复制远程索引库地址。

        c.打开终端,将远程私有库关联到本地。

        命令:cd  /Users/kylin/.cocoapods/repos

                pod repo add [项目名] [复制的远程索引仓库地址]

        d.在Finder 中多了一个项目文件夹(项目名),这就是我们用来存放组件的 .podSpec 文件的。


五、安装使用私有索引库

        修改 Podfile 文件。

        1.添加资源仓库地址:source 'https://git.coding.net/[]'     注:[] 是自己 coding 仓库地址。

        2.添加库索引:        pod 'AFNetworking'

     3.保持 Podfile 文件。pod install 

        4.自定义私有库出现在 Pod 文件夹中,大事告成。



备注:如果有不对的地方,望大家多多指正。