【Xcode/Swift】Xcodeのファイルテンプレが作れるらしい

頻繁に作るファイル (今回はViewModel) とかをファイル追加画面に予めテンプレとして用意出来ることを知りました、すごく便利です!

こんな感じのViewModelファイルのテンプレを作れます。

import RxSwift
import RxCocoa

protocol <#ViewModel_Name#>Inputs: AnyObject {

}

protocol <#ViewModel_Name#>Outputs: AnyObject {

}

protocol <#ViewModel_Name#>Type: AnyObject {
    var inputs: <#ViewModel_Name#>Inputs { get }
    var outputs: <#ViewModel_Name#>Outputs { get }
}

class SampleViewModel: <#ViewModel_Name#>Type, <#ViewModel_Name#>Inputs, <#ViewModel_Name#>Outputs {

    var inputs: <#ViewModel_Name#>Inputs { return self }
    var outputs: <#ViewModel_Name#>Outputs { return self }

    init() {
        
    }

}

テンプレファイル追加方法

まずはターミナルで以下ディレクトリまで移動してFinderで開く

open /Applications/Xcode.app/Contents/Developer/Library/Xcode/Templates/

Package Swift File.xctemplate というフォルダをコピーして一つ前のディレクトリ内に名前を変えて複製する


テンプレコードの作成

ViewModel.xctemplate 内のFILEBASENAME.swift をXcodeとかVSCodeで開いて以下のようにコードを加える

// ___FILEHEADER___

import RxSwift
import RxCocoa

protocol ___FILEBASENAME___Inputs: AnyObject {

}

protocol ___FILEBASENAME___Outputs: AnyObject {

}

protocol ___FILEBASENAME___Type: AnyObject {
    var inputs: ___FILEBASENAME___Inputs { get }
    var outputs: ___FILEBASENAME___Outputs { get }
}

class ___FILEBASENAME___: ___FILEBASENAME___Type, ___FILEBASENAME___Inputs, ___FILEBASENAME___Outputs {

    var inputs: ___FILEBASENAME___Inputs { return self }
    var outputs: ___FILEBASENAME___Outputs { return self }

    init() {
        
    }

}

最後にTemplateInfo.plist をXcodeで開いて以下のように設定を変更

これで準備は完了です、いつものようにCommand + Nで新規ファイル追加画面からオリジナルのテンプレファイルを選択出来るようになります。


まとめるほどでもない

効率化の鬼に俺はなる!