5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Xcodeでコードを自動生成することで生産性を上げる

Posted at

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ファイル

Screen Shot 2021-02-25 at 8.59.11.png

//
//  ___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 

Screen Shot 2021-02-25 at 9.04.15.png

使い方

command + Nで必要なテンプレートを選ぶだけ

Screen Shot 2021-02-25 at 8.51.50.png

5つのファイルを自動で生成できる

Screen Shot 2021-02-25 at 8.52.11.png

Repositoryの生成

Screen Shot 2021-02-25 at 8.52.51.png

UseCaseの生成

Screen Shot 2021-02-25 at 8.52.32.png

 あとがき

プロジェクトを汚すことなく使用することができますので、おすすめです!

参考

Installing the Clean Swift Template in Xcode
https://medium.com/swift2go/installing-the-clean-swift-template-in-xcode-6b4367006827

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?