iOS开发中的模块代码生成

504 阅读5分钟

www.shutterstock.com/video/clip-…

好的程序员--是一个避免多次编写相同代码的程序员。试想一下,如果程序员手动创建,例如VIPER模块,会浪费多少时间--这意味着你要为每个新模块重复编写所有的类和模板代码(希望你不要这样做)。在这里,我将谈谈帮助我们通过创建模板代码节省大量时间的工具,特别是Generamba*,* Xcode TemplatesXcode Snippets

我希望大家能在下面找到有用的信息。如果你喜欢我的文章,别忘了按一下拍手按钮👋。

我们有什么工具可以用来生成代码?

有很多,让我们快速看看最流行的那些。

  • SwiftGen是最受欢迎的,它允许自动生成静态代码来访问你的公共资源--资产、Localizable.strings。它可以让我们避免错误,一旦资源名称被改变,你的应用程序就会在运行时被粉碎。此外,它还提供了一个选项,可以使用IDE的自动完成功能挑选正确的资源,并按照你的要求配置资产和可本地化的结构。
  • Sourcery帮助我们根据你写的规则和代码自动创建模板代码。就我个人而言,我和许多其他开发者都使用它来创建模拟,只需指定需要模拟的类型。这里有一篇关于如何完成的文章--用Sourcery生成Swift Mocks的代码

上面的工具对描述的用例很有帮助。然而,对于创建空的模块屏幕(几个文件),我更喜欢使用最方便和最流行的工具--GenerambaXcode Templates

P.S. 需要提到的是,其他开发者也在创造他们自己的脚本和工具来生成代码,但显然它有其缺点 - 每个工具都有其独特的格式语言,需要得到支持。

Generamba

在独联体国家的公司中广为人知的工具,是由Rambler公司开发的。他们推广他们使用的VIPER架构,所以他们开发了自己的工具来创建模板式的iOS代码,该工具已经预装了他们的VIPER模板。

设置和快速启动

你可以在他们的Generamba资源库中查看完整的说明和文档。在这里,我将快速公布主要步骤。

  • 通过运行 $ gem install generamba 在你的机器上安装它
  • 跳到你的项目根目录下,运行$ generamba setup 。回答问题,结果你会看到Rambafile,里面有你项目模板生成和安装模板的一般设置。

如果你把答案中的某些字段填错了,不要担心--你可以在以后的Rambafile中修改它们。

通过运行*$generamba模板安装*来安装默认模板。它创建Rambafile中指定的模板文件并将其保存在Templates文件夹中。结果应该是这样的。

如何创建我自己的模板?

对于这个目标,你可以用两样东西来操作 -Generamba wiki和预装的模板。这对编写你自己的模板来说是绰绰有余的。格式语言是非常直接的,参数目的也很清楚,可以理解。

优点

  • 易于安装和使用
  • 为特定目标和特定文件夹添加测试文件
  • 代码库是开源的--你可以按自己的方式分叉和调整它
  • 简单易读的格式
  • 可从项目文件夹中管理 - 所有的模板都在一个地方

缺点

  • 最后一次代码修改是在三年前进行的。由于它依赖于.xcodeproj,它可以通过面对明显改变的结构而被破坏。
  • 没有用户界面,只能从控制台工作(对我来说,这比不上我的工作)。

Xcode Templates

Xcode Templates在很久以前就发布了,尽管我最近才开始广泛使用它。首先,我为不同的模板类型创建了模板。CustomUIView, CustomTableViewCell, APITargetType (forMoya), 等等。

当你为你的新文件选择模板时,它们出现在卷轴的底部。

自定义模板的图标是由我来选择的,在这里要讲一个很长的故事...

如何开始使用它?

我不想在这里重复,所以我只留下一个相当不错的指南的链接,它描述了非常深入的细节。

优点

  • 它可以在Xcode的用户界面上工作
  • 你可以让用户通过创建各种字段来配置他想要的每个模板的创建。

缺点

  • 你不能为你的模板中的每个文件设置不同的文件
  • 模板可能会因为更新或删除Xcode而丢失。

关于Xcode Snippets的几句话

你可能已经注意到,Xcode有时会建议为你填写一些结构,例如*- if let语句*。

对于一些小的模板代码,您可以创建和使用自己的代码片段。它真的很容易使用和创建 - 你只需选择你想创建代码片段的代码,然后右键单击创建代码片段。

之后,你就会进入一个窗口,为你新创建的代码段编辑参数。

P.S. 在创建一个代码段之前,请检查它是否已经出现在列表中,这样您就不会在创建现有的东西上浪费时间了 :)

因此,您只需通过编写您指定的完成提示将其作为默认代码段使用。

那么有什么值得使用的呢?

在我看来,在大多数情况下,我会选择Xcode模板,因为它们更容易使用,并得到苹果公司本身的支持。不过如果你想对你所使用的工具进行一些定制和控制,你也应该看看Generamba👍


iOS开发中的模块代码生成最初发表在Dev Genius的Medium上,在那里人们通过强调和回应这个故事继续对话。