VIPER的模块模板:尽量减少忙乱的方法
简介
自从我开始研究iOS已有5年了。 这些年来,我观察到您周围的一切都会随着时间而变化,无论是编程指南,开发语言还是客户(针对敏捷开发过程)给出的初始要求范围。 但是,一件事永远不会改变…… DEADLINE 。 这个词根据情况可能会致命。
如果软件开发有自己的词典,那么DEADLINE一词将始终与之抗争……
当您在进行可伸缩项目时,通常会使用快捷方式来减少工作量。 其中一些快捷方式只是一段代码 ,可以在网上找到“第三方库”。 另一方面,某些方法只是通过将开发过程中涉及的其他过程最小化/汇总来加速整个开发过程。
与VIPER一起使用,因为您的解决方案体系结构使您熟悉失去分配的每一分钟的痛苦。 在这种情况下,您应该有一些技巧来加快开发过程(如果使用VIPER,与MVC😓相比,您已经在编写3倍的代码了)。
正如我在上一个博客中所承诺的那样,今天我将说明如何为VIPER Project创建模块模板。
入门…
我们需要开发的模块模板将具有与Xcode相同的创建新文件的过程。 为此,您需要转到位置
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/developer/Library/Xcode/Templates/File\ Templates/Source/
在此位置,您可以找到许多扩展名为.xctemplate
文件夹。
复制文件夹Cocoa Touch Class.xctemplate
并将其粘贴到您的桌面,然后再开始浏览其内容,因为您不想弄乱Cocoa Touch默认文件模板。
现在,在Cocoa Touch Class.xctemplate
(在桌面上)中,删除除TemplateIcon.png , TemplateIcon Cocoa Touch Class.xctemplate
和TemplateInfo.plist之外的所有内容。
现在打开TemplateInfo.plist 。 这是目前对您最重要的文件,因为它将包含许多不同的配置。 在文件中,您可以看到许多键值对集。 但是所有这些都没有必要进行讨论。 让我们逐一地介绍一个人的必要条件。
一种。 描述 (类型:字符串)-描述是指您正在制作的模板的目标/最终输出。 选择您想要描述此模板将执行的操作的任何单词。
b。 摘要 (类型:字符串)-与描述相同。
C。 MainTemplateFile (类型:字符串)-用于命名模块文件。 由于VIPER模块中的所有文件均以模块名称作为其前缀,例如LoginView.swift,LoginPresenter.swift等。这将作为一种变量类型,其值为模块名称。 由于此密钥不存在于plist文件中,因此您需要使用___FILEBASENAME___
值添加它。
d。 选项 (类型:数组)-这些是在创建文件/模块时想要的一组选项/输入。 为了创建模块,我们只需要模块名称,因此我们将在同一模块下创建一个项目(类型Dictionary),该项目由以下几组键值对组成:
- Description (类型:字符串)-指的是对此项目所需输入的简短描述。
- 标识符 (类型:字符串)-它是一个变量,用于保存要创建的VIPER模块的名称。 这将有助于将其与“选项”中的其他项目区分开。
- 名称 (类型:字符串)-引用字段标签。
- 必需 (类型:字符串)-指我们通过该项所需要的输入是必需的还是可选的。
- 类型 (类型:字符串)-指为其创建项目的输入的数据类型。
- NotPersisted (Type:Boolean)-表示字段中值的持久性。
与此项目一起,我们将需要另一个项目来重新构建我们的模块文件内容。 我们正在制作的模板将包含具有通用文件名的模块文件。 当我们生成模块时,该项目将根据模块名称重命名文件内容。 该项目将包含以下几组键值对:
- 默认值 (类型:字符串)-用于重命名文件内容的变量。 换句话说,该项目的默认值。 使用
___VARIABLE_viperModuleName___
作为其值。 - 标识符 (类型:字符串)-同样是用于标识商品唯一性的值
- 类型 (类型:字符串)-由于该项用于配置文件内容并且不接受任何输入,因此其类型将是静态的。
至此,我们的.plist配置结束了……
要完全完成它,只需将Cocoa Touch Class.xctemplate
重命名为Module VIPER.xctemplate
。
模块文件配置。
配置TemplateInfo.plist文件后,这就是您的文件夹包含的内容
现在,我们需要模块模板文件。
模块模板文件将包含一些用于基本模块配置的代码。 但是除此之外,我们要关心的是使所有这些文件对于所有模块都是通用的。 它将需要使用我们之前使用的一些TemplateInfo.plist键值对。
现在,为了简化操作,您可以从此处下载尚未配置的模块文件。 这些文件只是将转换为通用模块的测试模块的文件。 请下载这些文件并将其粘贴到文件夹Module VIPER.xctemplate
。
选择任何您想要的文件。 例如,我使用TestWireframe.swift
。 现在打开相同的。 在最顶部,您经常会看到如下图所示的信息。
这些是文件头,旨在提供基本信息,例如FileName,ProjectName,Author,CreatedDate,CopyrightInfo等。我们将首先处理这些信息以使其通用。 将以下每个给定的单词替换为相应的单词:
- TestWireframe.swift:
___FILENAME___
- ViperSampleApp:
___PROJECTNAME___
- Manish Kumar:
___FULLUSERNAME___
- 18/08/01:
___DATE___
- 2018年:
___YEAR___
- Manish Kumar:
___ORGANIZATIONNAME___
现在,我们将致力于使代码通用。 但是,当我说这话时,我的意思不是任何复杂的工作。 只需一点查找和替换即可在Xcode😉中工作。
现在,由于我们只需要特定于文件模块,因此只需在class TestWireframe
找到单词“ Test”(以及在类名称本身中找到单词Test)。 用___VARIABLE_viperModuleName___
替换单词。 如果您还记得的话,我们将其保留为重命名文件内容的默认值。 并完成相同的工作,我们准备好通用文件内容。
您必须对每个文件遵循相同的过程。 转换Module VIPER.xctemplate
所有文件后,只需复制Module VIPER.xctemplate
文件夹,并将其粘贴到复制Cocoa Touch Class.xctemplate
。
只需退出Xcode(如果已打开),然后使用任何现有的VIPER项目启动它。 尝试添加一个新文件,您会看到创建Module VIPER的选项。
这样,我就休息了。
您可以在以下Github存储库中找到模块模板:https://github.com/manish-1612/Viper_Module_Template。
即将来临
在下一个博客中,我将写一个博客,介绍如何创建自己的项目模板(具有5个内置模块,如Login,Dashboard,Settings,SideMenu,Logout)。
如果您喜欢该博客,请别忘了鼓掌。 😊😊😊😊😊