使用Marathon with在Swift中使用脚本提高生产力

在iOS开发过程中,总会出现在整个项目中执行重复性任务的情况。 乍一看,您可能会发现其中的一些,后来又发现。 有可能:

  • 管理所有项目资产,有时调整它们的大小以适合适当的尺寸,最后添加到Xcode项目中。
  • 使用所有必需的文件(例如ViewControllers,Views,ViewModels等)创建新屏幕的文件夹结构。

在Fastlane和Quicktype之前,您需要手动执行以下任务:

  • 在Testflight / Fabric上部署应用程序
  • 根据API JSON响应创建模型

好消息是,iOS社区正在发展,并且有越来越多的工具可以自动执行日常开发流程,例如Sourcery或SwiftGen。 但是,如果它们都不满足您的需求怎么办? 您是否应该继续前进并继续手动重复进行所有操作? 还是应该使它们自动化? 好的,让我们写一些脚本,但是…

实际上,不需要使用Bash,Python,Ruby或其他脚本语言,因为Swift提供了编写脚本的功能。 与Marathon结合使用,在OSX上编写和安装脚本确实非常容易。 Marathon生成一个Xcode项目,并允许在脚本代码中使用依赖项。

让我们编写一个程序,该程序将生成具有所有所需类的自定义应用程序的屏幕文件夹结构。 在这种情况下,它将是“ 登录”屏幕文件夹。

每个文件都将包含样板代码以及已导入的所有必需库。

首先,让我们安装马拉松。 在撰写本文时,Homebrew还不支持最新版本的Marathon,因此我建议您通过Swift Package Manager安装它。 打开终端并输入:

  $ git clone https://github.com/JohnSundell/Marathon.git 
$ cd马拉松
$使

成功安装Marathon之后,第二步是创建FilesGenerator项目

  $➜马拉松创建FilesGenerator 
$ Files在FilesGenerator.swift中创建脚本
$✏️打开FilesGenerator.xcodeproj /

它应该打开一个包含main.swift文件的Xcode项目

因为我们要对文件进行操作,所以最好添加名为Files的帮助程序依赖项。 让我们通过执行命令来做到这一点:

$ marathon add https://github.com/JohnSundell/Files.git 

关闭您的Xcode项目,然后输入以下内容再次将其打开:

 $ marathon edit FilesGenerator.swift 

您应该看到添加了文件依赖关系的新的依赖关系目录。 现在,我们准备进行第三步编码。 看一下冗长的代码,但很不言自明。 它需要screenName 作为init函数的参数并以此为基础,将生成具有适当名称和样板代码的文件。

详细说明代码后,让我们将其复制并粘贴到main.swift中。 然后去终端输入

  $ marathon运行FilesGenerator .swift 

在当前目录中,您将看到一个名为Login的新文件夹 现在,您要做的就是将其拖放到Xcode项目中。

因此,这花费了几分钟,我们在开发应用程序时每次都会自动执行一个重复性过程。 您可以根据您的类实现和应用程序的体系结构自定义脚本。 随时检查我的回购,在其中添加新文件生成器的地方https://github.com/mkkroliks/Swift-Files-Generator