iOS 分层架构初探

这篇博客把分层架构讲的很形象: 三层架构(我的理解及详细分析)

为什么要分层

代码系统分层就好比管理分层一样,各司其职,优点非常多,对于软件后期的维护来说是十分有必要的。它的优点有:

  • 解耦

    上一层依赖于下一层,如果测试下一层没有问题,那么问题就只有可能发现在本层了,便于发现和改正BUG。体现了“高内聚,低耦合”的思想。

  • 分工明确

    各个层次分工明确,将一个复杂问题简单拆分了。

  • 便于维护

    各层间通过接口解耦,接口与实现分离,从而可以非常简单的替换掉实现,或者实际实现等。

  • 逻辑复用(代码复用)和劳动成本的减少

    分层的根本在于代码的复用和劳动成本的减少。分层的最理想化的结果是实现层与层之间的互不依赖的内部实现,所谓的即插即用。

封装 .framework 静态库

为什么要封装静态库

像工作中使用的第三方SDK基本上都是闭源的,因为公司不能把自己的机密泄露出去。所以当需要给别人提供SDK但不让他们知道代码的实现时就需要封装成静态库。

静态库有.a库和.framework库,苹果官方更建议我们使用.framework库,因为其更加强大。

.a是一个纯二进制文件,.framework中除了有二进制文件之外还有资源文件。
.a文件不能直接使用,至少要有.h文件配合,.framework文件可以直接使用。
.a + .h + sourceFile = .framework。

开发中有时候会遇到这样的需求,要给用户一个取色板,让用户从中自由地选取颜色,用来改变主题或者控制灯具的颜色等。这时候我们就需要获取一个视图的指定坐标的颜色值。

使用场景

有时候我们可能会需要一个取色器,例如我的蓝牙灯项目,让用户从一个取色器中随意取色:

假如你需要把一个字典或者别的什么东西保存到沙盒里,你准备怎么做?也许你已经条件反射的想到了操作步骤……其实,你可以不必每次都那么老老实实的把每一步写出来,一行代码就可以了:

1
@"文件名".cachePath.save(要保存的内容);

本质上就是把沙盒文件操作简化为:【路径+保存文件】两个关键点,组成一条链式语法。

说实在话,类似的教程网上很多,基本可以满足大多数人零基础发布CocoaPods,但是其中可能会遇到一些问题,只有亲自尝试过才知道。

准备工作

1. clone远程仓库到本地

1
git clone 你的仓库链接

2. 注册trunk

注册的命令

1
pod trunk register 你的邮箱 你的用户名

记得去邮箱里验证,然后可以输入以下命令查看个人信息

1
pod trunk me