[Xcode翻译]XCode 模板教程 - 如何逐步创建自定义模板

409 阅读5分钟

本文由 简悦 SimpRead 转码, 原文地址 itcraftapps.com

了解如何在 XCode 中逐步创建自定义模板。

改进工作流程一直是程序员的心头大事。我们一直在寻找能加快编码、测试或组织工作的工具和解决方案。我发现使用模板来处理重复性任务是提高工作效率的好方法。今天,我想向大家展示我是如何让XCode模板为我所用的。希望本教程也能对你改进日常工作有所帮助。

目录

  1. 什么是 XCode 模板?

  2. XCode 模板安装

  3. 文件模板结构

  4. 实现与结构

    第 1 步:从头开始,这是 ViewController 的实现
    第 2 步:模型实现
    第 3 步:视图实现
    第 4 步:ViewModel 实现

  5. 在 XCode 中使用文件模板

  6. Xcode 模板中的高级选项

  7. 共享 XCode 项目模板

  8. 摘要

什么是 XCode 模板?

XCode Templates 是一种创建代码片段的工具,可为您实现目标提供更好的起点。在本教程中,我将引导您为 MVVM 项目架构准备一个自定义模板。

通常,我们需要从头开始为一个新模块创建结构和文件,而这一过程每次都基本相同。例如,在 MVVM 模式中,要创建一个登录模块,我们需要创建文件夹和至少 4 个类:

  1. 登录模块文件夹
  2. 登录视图
  3. 登录视图模型
  4. 登录视图控制器
  5. 登录模型

使用所需代码添加每个类都很耗时。有了 XCode 模板,我们就可以加快将它们添加到项目中的过程。我将向你展示如何为新的 MVVM 模块配置模板。

安装 XCode 模板

要在 XCode 中安装模板,我们需要添加一个包含自定义模板的新文件夹。

XCode iOS 模板位置

所有 Xcode 自定义模板文件都位于 ~/Library/Developer/Xcode/Templates/ 中,并按文件夹名称分组。您可以手动添加,或使用终端运行以下命令添加:

mkdir ~/Library/Developer/Xcode/Templates/Custom Templates

文件模板结构

模板主文件夹

每个 XCode 文件模板都是一个单独的文件夹,扩展名为 .xctemplate。如果你想创建一个名为 "View, Model & ViewModel "的模板,你必须在 ~/Library/Developer/Xcode/Templates/File Templates/Custom Templates 中创建一个名为 "View, Model & ViewModel.xctemplate " 的文件夹。

模板内部文件夹和文件

TemplateInfo.plist 文件包含基本的模板描述。在使用向导创建 XCode 应用程序模板时,我们可以通过以下实现键入模块名称

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Kind</key>
	<string>Xcode.IDEKit.TextSubstitutionFileTemplateKind</string>
	<key>Platforms</key>
	<array>
		<string>com.apple.platform.iphoneos</string>
	</array>
	<key>Options</key>
	<array>
		<dict>
			<key>Identifier</key>
			<string>productName</string>
			<key>Required</key>
			<true/>
			<key>Name</key>
<string>Module Name</string>
			<key>Description</key>
			<string>The name of the Model, View and ViewModel to create</string>
			<key>Type</key>
			<string>text</string>
			<key>Default</key>
			<string>Module1</string>
		</dict>
	</array>
</dict>
</plist>

您可以在实际模板文件中加入几乎任何内容。您可以使用文本宏,如 FILEBASENAME 来引用文件名。文件名来源于新文件向导中设置的 TemplateInfo.info 文件中的 productName 选项。

实现和结构

我的模板文件夹结构和 Swift 类是这样的:

步骤 1. 让我们从头开始。下面是 ViewController 的实现:

import UIKit

class ___FILEBASENAMEASIDENTIFIER___: UIViewController {
    
    let viewModel: ___VARIABLE_productName___ViewModel
    let mainView: ___VARIABLE_productName___View
    
    init() {
        viewModel = ___VARIABLE_productName___ViewModel(withModel: ___VARIABLE_productName___())
        mainView = ___VARIABLE_productName___View()
        super.init(nibName: nil, bundle: nil)
        
        mainView.configure(withViewModel: viewModel)
    }
    
    required init?(coder _: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()
        setupView()
    }
    
    private func setupView() {
        view.addSubview(mainView)
        mainView.snp.makeConstraints { make in
            make.top.leading.trailing.bottom.equalToSuperview()
        }
    }
}

正如您所看到的,我们实现了以下功能:

  • 声明 viewModel 和 mainView 变量。它将包含文件向导中设置的 TemplateInfo.plist 中的产品名称
  • 初始化上述变量
  • 默认初始化
  • 所需的初始化(我们从代码中使用 ViewControllers,而不是 Storyboards)
  • viewDidLoad 实现
  • 添加 mainView 并设置 SnapKit 约束的 setupView 函数

步骤 2. 模型实现:

导入基金会

class ___FILEBASENAMEASIDENTIFIER___ {
  
}

模型类名称将由 XCode 自动生成,因此以上只是一个示例。

步骤 3. 查看实现:

import Foundation

class ___FILEBASENAMEASIDENTIFIER___ {
  
}

类视图

类 view 包含一个默认初始化器和一个必需初始化器--这两个初始化器都是通过代码初始化 View 所必需的。我们还需要配置绑定 viewModel 和视图的函数。请注意,ViewModel 名称与 ViewController 中的 ViewModel 名称相同。

步骤 4. 实现 ViewModel:

import UIKit

class ___FILEBASENAMEASIDENTIFIER___: UIView {

    init() {
        super.init(frame: CGRect.zero)
    }
    
    required init?(coder _: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }

    func configure(with viewModel: ___VARIABLE_productName:identifier___ViewModel) {
        // configure the view with a ___VARIABLE_productName:identifier___ViewModel
    }
}

ViewModel 使用第 2 页中创建的 Model 进行初始化。

在 XCode 中使用文件模板

要开始使用,您只需点击文件 -> 新建 -> 文件...

在列表中找到你的模板。

然后键入模块名称。

并将其添加到项目中。

Xcode 模板中的高级选项

您可以在 GitHub 上找到一些演示可用选项的示例文件模板。 您还可以对 Xcode 默认模板进行逆向工程,了解如何改进自定义模板以便更好地使用。它们位于 Xcode.app/Contents/Developer/Library/Xcode/Templates 或 Xcode.app/Contents/Developer/Platforms/<platform_name>/Developer/Library/Xcode/Templates 中。

共享 XCode 项目模板

要与他人共享模板,您需要发送所有模板文件。要让他人使用,他们需要将模板添加到以下文件夹:~/Library/Developer/Xcode/Templates。 并相应命名。现在,模板就可以在 XCode 中使用了。

摘要

这是一个完整的 XCode 模板,可加快编码速度。你可以根据自己的需要修改代码的任何部分。以下是有关文本宏引用的帮助提示

TemplateInfo.plist 可以更复杂,例如,你可以使用向导添加一个选择列表,按类型挑选文件。你也可以为新项目和目标创建自己的默认实现和结构。


www.deepl.com 翻译