基于Cocopods的模块化管理实现
来源:互联网 发布:开淘宝店需要什么资料 编辑:程序博客网 时间:2024/06/05 08:15
去年下半年随着项目的功能越来越复杂,为提高代码的可维护性,对代码进行了一次模块化拆分。大概思路是,将代码拆分成为一个一个的模块,然后采用pod对模块进行管理。
注:虽然上面的示意图中的依赖是有层级关系的,但是实际上最后是没有层级关系。
第一步:
将工程拆分成多个子工程。
这一步一开始因为对Pod的机制不熟悉走了弯路,实际上,只需要把工程拆成多个独立文件夹就可以了,并不需要建立lib。因为pod管理依赖的本质,就是读取解析podspec文件之后通过ruby脚本将文件以及配置写入到项目中。
第二步:
对各个子工程添加podspec文件。具体的podspec文件的写法,参照官网就可以了,非常详细。为了避免走弯路,强烈推荐不要看网上的博客,只看官网。
第三步:
将刚刚将好的pod库,通过cocoapods集成到工程中去。 因为只是本地库,所以舍去了pod lib lint这一步。
如果能运行成功,此时就大功告成啦!实际并不会这么顺利,因为拆分之前的耦合等现象,这里需要对代码引用等进行简单修改。
第四步:
有的模块需要开发给外部开发人员使用,这时候就需要创建私有库了。 因为刚刚podspec文件已经写好了,这时候只需要将podspec 推送到私有repo地址上就可以。(这一步需要pod lib lint进行验证),私有库的创建仍然建议是看官网,理解原理之后其实非常简单,千万不要图省事看博客。
简单来说就是: pod 从指定的repo地址下载podspec文件,通过podspec文件中指定的源码下载地址将源码下载到一个临时文件夹中,下载完成后读取解析podspec文件之后通过ruby脚本将文件以及配置写入到项目中。(这一步实际会在pod install中完成)。
从上面的过程可以看出,此时我们需要1、repo仓库 2、源码仓库地址 其中repo仓库只能是git仓库,源码仓库支持git,svn等等。
对代码进行模块化拆分,并用pod进行管理,大致就是这么多内容。到了这里看上去已经拆分成功了,实际上才刚刚开始,代码之间的解耦等等还有很多工作要做。
最后附上pod官网地址:http://cocoapods.org,有啥疑问上官网
- 基于Cocopods的模块化管理实现
- Vuex 模块化实现待办事项的状态管理
- Vuex 模块化实现待办事项的状态管理
- Vuex 模块化实现待办事项的状态管理
- Vuex 模块化实现待办事项的状态管理
- Vuex 模块化实现待办事项的状态管理
- Vuex 模块化实现待办事项的状态管理
- cocopods管理framework
- 基于webpack的模块化构建
- 基于webpack的模块化构建
- 模块化加载的实现
- StoryBoard的多模块化管理
- 基于ASP.NET MVC3 Razor的模块化/插件式架构实现
- cocopods的简单操作
- cocoPods的使用
- cocopods的基本命令行
- CocoPods的安装步骤
- CocoPods的使用步骤
- 课堂知识整理
- leetcode解题之107 # Binary Tree Level Order Traversal II Java版
- Java中类加载的时机
- Codeforces 276D Little Girl and Maximum XOR 贪心+构造
- bzoj1066: [SCOI2007]蜥蜴
- 基于Cocopods的模块化管理实现
- 蓝桥杯-凑算式
- linux里面的简单命令
- 权限管理系统
- POJ 2246 Matrix Chain Multiplication 栈
- 1002. 写出这个数 (20)
- 一键google遨游
- 浏览器端数据存储之Cookie、localStorage、sessionStorage
- 分时操作系统与实时操作系统