iOSエンジニアのつぶやき

毎朝8:30に iOS 関連の技術について1つぶやいています。まれに釣りについてつぶやく可能性があります。

Xcodeのテンプレートファイルを作ってみた

最近 Clean Architecture の実装をしている時などに、新しいファイルを作るたびに ProtocolClass の設定をするのが面倒になってきたので、Xcode のテンプレート機能を使ってファイルの作成をちょっと楽にしてみたいと思います🏃🏻‍♂️

それではやっていく

とりあえず、既存のテンプレートを覗いて見る。パスは下記の通りです。

/Applications/Xcode.app/Contents/Developer/Library/Xcode/Templates/File\ Templates/

どうやら、テンプレートは .xctemplate というネームスペースのファイルで構成されているようですね。

f:id:yum_fishing:20210302111957p:plain

という訳で自作のテンプレートファイルを作成するために、とりあえず一番シンプルな Swift File.xctemplate あたりをコピーしておきます。 自作するテンプレートの置き場は下記になるそうなので、テンプレート郡の名前を決めてフォルダを作り、その配下に先ほどコピーしたテンプレートファイルを置きます。

~/Library/Developer/Xcode/Templates/

今回は Clean Architecture 用のテンプレートを作成したかったので、配置は下記のようになります。

~/Library/Developer/Xcode/Templates/Clean\ Architecture/Swift\ File.xctemplate

次に、Swift File.xctemplateClean ArchitecturePresenter 用のファイルとしてカスタムしたいのでとりあえず、ファイル名を Presenter.xctemplate に変更します。

そしたら、最後に ___FILEBASENAME___.swift の中身を Presenter のテンプレート実装に書き換えて完了です。___FILEBASENAME___ には、ユーザが決めたファイルの名前が入ります。今回のプロジェクトではクラス名とファイル名は統一しているので、下記のようにしています。

//___FILEHEADER___

import Foundation

protocol ___FILEBASENAME___Interface: class {
    func setup()
}

final class ___FILEBASENAME___: ___FILEBASENAME___Interface {
    func setup() {
        // TODO: Setup.
    }
}

では実際に新しいファイルを作成してみます。Clean Architecture というグループの中に Presenter があるのが分かりますね👀

f:id:yum_fishing:20210302114312p:plain

そして、選択するとちゃんとファイルが作成されました。

import Foundation

protocol HogeInterface: class {
    func setup()
}

final class Hoge: HogeInterface {
    func setup() {
        // TODO: Setup.
    }
}

てな感じで本日も以上になります🍺

参考

その他の記事

yamato8010.hatenablog.com

yamato8010.hatenablog.com

yamato8010.hatenablog.com