将你的应用迁移到Swift包模块教程第1部分

介绍
应用程序将随着时间的推移而增长,如果没有良好的体系结构,将变得难以管理和维护。在OkCupid188bet金宝搏官网,我们认为确保干净代码和良好组织的最好方法是将代码库分解成可管理的部分。幸运的是,苹果已经创造了一个伟大的工具来简化这个过程。
Swift package的另一个巨大优势是能够单独运行它们,以提高开发期间的编译时间,并允许更容易的测试。现在,我们的测试应用程序可以在一分钟内从一个干净的构建中编译超过20个模块和10个依赖项,而对单个模块的增量更改只需10秒即可编译和运行。
在本教程中,我们将逐步介绍如何开始将Swift包添加到自己的项目中,以保持代码整洁和可维护性。
你可以在这里找到本教程的示例项目:
https://github.com/Dmitri-Fuerle-188bet金宝搏官网okcupid/sampleModulePart1
设置
因为我们这样做是出于组织的原因,而不是为了在应用程序之间共享代码,所以很容易利用monorepo
的概念。这意味着我们将把新的Swift包添加到我们当前应用的Git存储库中。
出于演示目的,我们将使用一个名为样本
并将其嵌入具有相同名称的工作区中。
首先,创建一个文件夹模块
在git的根目录下,我们可以存储所有的Swift包。
注意:请确保您的项目首先在工作区中。
现在选择左下角的加号,然后选择“New Swift Package”。确保把新的Swift包放在模块
文件夹中。

之后应该是这样的:

Package.swift
现在我们来修理和清理Package.swift
归档,检查不同的部分。
Swift是向编译器解释如何构建你的Swift包的文件。该文件声明要包含和不包含什么,以及应该如何构建包。
如你所见,我们想要一个静态库,我们也想要能够本地化模块和包含资产。
清理
默认的Swift包提供了所有你需要的东西,使你的Swift包在所有平台上编译。这很好,但我们并不需要它为我们的用例提供的所有东西,因为它只是一个iOS应用程序。
以下是更改之前的样子:

让我们删除LinuxMain.swift
和XCTestManifests.swift
因为我们不会在Linux中运行它。然后让我们重命名NewModule
文件夹公共
并创建一个内部
文件夹更好的访问控制组织。现在让我们重命名NewModule.swift
来NewModuleViewController.swift
这样我们就可以测试它是否有效。
结果应该是这样的。

线了!
上面的代码应该给我们一个ui
它有一个橙色的背景来确认它正在正常工作。
选定项目并突出显示我们的主要目标后,在“框架、库和嵌入式内容”下选择加号。

现在选择我们的新库,按“添加”键

现在回到应用中,让我们通过编辑Main.storyboard
并将Class更改为NewModuleViewController.swift
和“模块”到NewModule

测试
现在,当我们运行应用程序时,你会看到应用程序正在使用来自新模块的ViewController !

结论
现在您可以看到将代码分解成Swift包是多么容易。然后,可以使用这个过程将松散耦合的代码移到类似这样的模块中,这些模块可以独立于主应用程序进行编译和运行。在下一篇教程中,我将讨论如何最好地在多个模块和主要应用目标之间进行接口,以适应Swift包的采用规模。