iOS之组件化 一

153 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第14天,点击查看活动详情

组件化可以将一个庞大的项目,按功能拆分成独立组件,多组件之间特定方式通讯,从而使模块之间解耦,提高团队协作开发效率。每一个组件都是独立的,可独立运行。一些底层的组件可重复利用,提高可重用性。

使用组件化的优势

  • 模块间解耦
  • 模块复用
  • 提高团队协作开发效率
  • 单元测试

不建议使用组件化的项目

使用组件化,理论上会使项目变复杂

设计模块的分离和相互之间的通讯,常用控件和功能的封装,对宏定义及分类文件、底层组件的下沉,都会让你的代码变得更庞大

所以,当项目或团队具备以下特性时,不建议使用组件化

  • 项目较小,模块间交互简单,耦合少
  • 模块没有被多个外部模块引用,只是一个单独的小模块
  • 模块不需要重用,代码也很少被修改
  • 团队规模很小

组件化分层

一般项目的组件化分为业务层、通用层、基础层

image-41.png

  • 只允许上层对下层的依赖,不允许下层依赖上层
  • 横向模块之间不能依赖,同级模块之间的通讯进行下沉
  • 将通用组件、宏定义、分类文件、公共资源进行下沉,使其具备独立性和复用性
  • 开发中,对于层次的构建,由下至上。避免因下层代码的改动,导致上层代码大量修改 例如:

image-42.png

CocoaPods

CocoaPods是专门为iOS工程提供第三方依赖库的管理工具,通过CocoaPods,我们可以更方便地管理每个第三方库的版本,而且不需要我们做太多的配置,就可以直观、集中和自动化地管理我们项目的第三方库

日常开发中,我们经常使用CocoaPods进行代码提交,也经常会拉取第三方提供的优秀框架使用

使用CocoaPods必须对其进行安装 image-43.png

导入一个三方框架时,会在本地CocoaPods的索引库中进行查找

image-44.png.podspec.json文件中,找到该框架在远程仓库的下载地址,从远程仓库将其导入

image-45.png CocoaPods流程图

image-46.png