最近 Clean Architecture
の実装をしている時などに、新しいファイルを作るたびに Protocol
と Class
の設定をするのが面倒になってきたので、Xcode のテンプレート機能を使ってファイルの作成をちょっと楽にしてみたいと思います🏃🏻♂️
それではやっていく
とりあえず、既存のテンプレートを覗いて見る。パスは下記の通りです。
/Applications/Xcode.app/Contents/Developer/Library/Xcode/Templates/File\ Templates/
どうやら、テンプレートは .xctemplate
というネームスペースのファイルで構成されているようですね。
という訳で自作のテンプレートファイルを作成するために、とりあえず一番シンプルな Swift File.xctemplate
あたりをコピーしておきます。
自作するテンプレートの置き場は下記になるそうなので、テンプレート郡の名前を決めてフォルダを作り、その配下に先ほどコピーしたテンプレートファイルを置きます。
~/Library/Developer/Xcode/Templates/
今回は Clean Architecture
用のテンプレートを作成したかったので、配置は下記のようになります。
~/Library/Developer/Xcode/Templates/Clean\ Architecture/Swift\ File.xctemplate
次に、Swift File.xctemplate
をClean Architecture
の Presenter
用のファイルとしてカスタムしたいのでとりあえず、ファイル名を 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
があるのが分かりますね👀
そして、選択するとちゃんとファイルが作成されました。
import Foundation protocol HogeInterface: class { func setup() } final class Hoge: HogeInterface { func setup() { // TODO: Setup. } }
てな感じで本日も以上になります🍺