XcodeでClean Architecture + MVVMのコードを自動生成させるジェネレーターを作りました!
ファイルを自動的に生成させることができるようになるので便利です。
この記事は以下の記事の構成でファイルを生成しております。
ある程度複雑なiOSアプリに必要なClean Architectureのベストプラクティスを考えてみた https://qiita.com/YOSUKE8080/items/c036c9cc17bbee773019
前置き
クリーンアーキテクチャを採用しているのですが、
たとえば、一つのHogeというViewを生成するのに以下のファイルを生成しています。
HogeViewController.swift
HogeBuilder.swift
HogeViewModel.swift
HogeRouter.swift
HogeStoryboard.swift
これらのファイルがViewの数ごとに生成する必要があるのですが、簡単な作業ですがクラス名、変数名が統一されているか慎重に確認する必要があるので、結構神経も使います。
自分でテンプレートを作ることで動的にファイルを生成することができるようになるこのようにしてファイルを生成できます。
作り方
必要なもの
- テンプレートであるswiftファイル
- Plistファイル
//
// ___FILENAME___
// ___PROJECTNAME___
//
// Created by ___FULLUSERNAME___ on ___DATE___.
//
import RxCocoa
import RxSwift
import UIKit
class ___VARIABLE_sceneName___ViewController: UIViewController {
var viewModel: ___VARIABLE_sceneName___ViewModel!
var bag = DisposeBag()
override func viewDidLoad() {
super.viewDidLoad()
viewModel.setUp()
setBind()
}
private func setBind() {
}
}
FILEBASENAME ベースのファイル名
FILENAME ファイル名
PROJECTNAME プロジェクト名
FULLUSERNAME 氏名
DATE 日付
など、もとから定義されているものに加えて、 以下のようにPlistに変数名を定義して、テンプレート作成時に変数として値をセットすることもできます。
VARIABLE_sceneName
使い方
command + Nで必要なテンプレートを選ぶだけ
5つのファイルを自動で生成できる
Repositoryの生成
UseCaseの生成
あとがき
プロジェクトを汚すことなく使用することができますので、おすすめです!
参考
Installing the Clean Swift Template in Xcode
https://medium.com/swift2go/installing-the-clean-swift-template-in-xcode-6b4367006827