[iOS] クリーンアーキテクチャのコード自動生成ツール、Kuriをちょっと賢く使うためのオプションの紹介

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

こんぬづは、渋谷にあるBOOK LAB TOKYOという本屋とカフェが一緒になったお店にハマりかけている田中です。本を2000円分以上購入するとドリンク一杯無料になるとのことで、早速冬休みの課題図書を購入しました。オススメの場所です。

IMG_2155

さてさて少し脇道にそれましたが、今回はKuriというiOSクリーンアーキテクチャのためのコード自動生成ツールをちょっと賢く使うためのオプションを紹介します。

Kuriとは?

bannzaiさんが開発したiOSクリーンアーキテクチャ向けコード自動生成ツールで、クリーンアーキテクチャのファイル数とコード量が増えてしまう問題を緩和してくれるものです。

詳しくはこちらの紹介記事をお読みください。

検証環境

  • Xcode 8.1
  • Kuri 0.1.1

Kuriをちょっと賢く使うためのgenerateコマンドオプション

紹介する二つのオプションはkuriのgenerateコマンドのオプションになります。どちらもアプリの一つの機能のためにクリーンアーキテクチャで必要とされる役割を全て作るのではなく、その機能ごとに必要なものを選別してファイルを自動生成するためのオプションになります。

例えばLogin機能を作るといった場合に、ログイン処理の結果として返ってくるものはLoginというEntityではなく、ユーザー情報であったりアクセストークンである場合などが挙げられます。(この場合はKuriで生成するのとは別に自分でファイルを生成するほうがよいでしょう。)

この場合は「Loginという機能は必要だが、LoginというModelやEntityは必要ない」という指定でファイルを生成をしたいわけですが、オプションをつけないkuri generateコマンドを使うと全ての役割を生成してしまうことになります。

$ kuri generate Login

KuriSample_xcodeproj

こういった場合には-s, -iのオプションが有効です。

-s: 生成する役割を指定して生成する

使い方は以下の通りです。

$ kuri generate <任意のファイルプレフィックス名> -s <使いたい役割名>

具体的に、Builder, Wireframe, View, Presenter, UseCase, Translator, Repository, DataStore(ModelとEntity以外)を生成したい場合は以下のようになります。

$ kuri generate Login -s Builder Wireframe View Presenter UseCase Translator Repository DataStore

-i: 生成する役割を選択して生成する

使い方は以下の通りです。

$ kuri generate <任意のファイルプレフィックス名> -i

具体例は以下になります。

$ kuri generate Login -i

こちらは対話式に使いたい役割をy/nで選択していく以下の画像のような形式をとるためのオプションになります。

スクリーンショット 2016-12-28 15.49.44

まとめ

以上、Kuriで選択的にファイルの生成を行う方法を紹介しました。

アプリ開発をしていると、今回紹介したようにテンプレートのままの命名でクラス名をつけられない場合も発生します。そういったときに-sや-iのオプションを使って、Kuriで生成するファイルと自前でファイルを生成するのとを切り分けて行うことで、Kuriをより有効に使っていくことができるようになるでしょう。

参考・関連