一同养成写作习惯!这是我参加「日新方案 4 月更文应战」的第15天,点击查看活动概况。

创立组件

运用CocoaPods,可分为本地和长途两种方法搭建组件化工程

  • 本地:经过项目中创立模块,利用CocoaPodsworkspec进行本地管理,不需要将项目上传git,而是在项目的Podfile中指定目录
  • 长途:利用CocoaPods进行模块的长途管理,需要将项目上传git。对公司项目而言,一般运用私有库

下面咱们以本地方法为例,搭建一个组件化工程

创立LGHomeModule模块

pod lib create LGHomeModule
-------------------------
//对模块进行以下装备:
//工程类型
What platform do you want to use?? [ iOS / macOS ]
 > iOS
//开发言语
What language do you want to use?? [ Swift / ObjC ]
 > objc
//创立App测验项目
Would you like to include a demo application with your library? [ Yes / No ]
 > yes
//供给frameworks的测验
Which testing frameworks will you use? [ Specta / Kiwi / None ]
 > none
//供给测验文件
Would you like to do view based testing? [ Yes / No ]
 > no
//设置前缀
What is your class prefix?
 > LG

装备完结后,生成以下工程:

iOS之组件化 二
进行组件的开发,真实的代码目录在Pods项目的LGHomeModule中,而LGHomeModule是对组件进行测验运用

iOS之组件化 二
在组件中完结Home模块的事务代码

iOS之组件化 二
在测验工程Example目录下,履行pod install

iOS之组件化 二
打开工程,组件成功导入

iOS之组件化 二

三方和本地组件的依靠

三方结构

日常咱们开发的组件,有些功用会依靠于其他三方结构,此时咱们需要对其进行额外的装备

创立通用UI组件LGCommonUIModule

pod lib create LGCommonUIModule

完结组件的事务代码,部分功用依靠于AFNetworkingMasonry结构

iOS之组件化 二
装备组件的Pod文件,写入对三方结构的依靠

iOS之组件化 二
在测验工程Example目录下,履行pod install,解决三方结构的依靠问题

本地组件

除了三方结构的依靠,咱们的组件也会对基层的本地组件进行依靠,例如:分类和宏定义等

LGCommonUIModule插件中,对基层的公共组件LGMacroAndCategoryModule进行依靠,并且代码中运用到插件中的分类和宏

iOS之组件化 二
Pod文件中,按照三方库的导入方法

  s.dependency 'AFNetworking'
  s.dependency 'Masonry'
  s.dependency 'LGMacroAndCategoryModule'
  s.prefix_header_contents = '#import "Masonry.h"','#import "UIKit+AFNetworking.h"','#import "LGMacros.h"'
  • 如果公共组件在云端,当然不会有任何问题。但案例中,运用本地组件,这种导入方法一定会报错 导入本地组件,除了上述的装备之外,还需要在Pods项目中的Podfile文件中,对公共组件的本地路径进行装备

iOS之组件化 二
以当前的Podfile文件路径为根底,向上两层,找到LGMacroAndCategoryModule本地组件

iOS之组件化 二
在测验工程Example目录下,履行pod install,解决本地组件的依靠问题