これは Swift Tweets の発表をまとめたものです。イベントのスポンサーとして Qiita に許可をいただいた上で、このような形(ツイートの引用)で投稿しています。
"Clean Architecture 開発ツールの話" 自己紹介 廣瀬 雄大と申します。 あだ名はstar乞食です。 github: https://github.com/bannzai
よろしくお願い致します!
#swtws
— @yhirose741
@ktanaka117 さんの発表で登場した(iOSにおける) Clean Architectureの開発効率を計ったツール「Kuri」を作りました。 Swiftで作ったコマンドラインツールになります。 今回はその使い方や作った目的についてツイートしていきます。
#swtws
— @yhirose741
Clean Architectureの欠点としてコードの記述の多さが挙げられます。 Kuriはこのコードの記述量に対する負担を軽減するために作ったライブラリです。 具体的にどういうアプローチで解決を試みたかをご紹介します。
#swtws
— @yhirose741
Clean Architectureは細かくレイヤーを分割することにより役割や責務が明確になります。 導入してしばらく書き続けていて同じような処理の流れを書くことが多いことに気づきました。 これは役割や責務が明確に分かれていることによって起きていると考えられます。
#swtws
— @yhirose741
Kuriではこれに着目しました。 同じような処理の流れを書くということはテンプレートを用意することで テンプレートからコード・ファイルをgenerateすることができるだろうと考えました。
具体的な使い方を紹介します。
#swtws
— @yhirose741
まず、Kuriでコードジェネレートするために必要なものが二つあります。
Kuri.yml
KuriTemplateKuriではこれを用意するコマンドが用意されています。
xcodeprojectがあるディレクトリで実行してください$ kuri setup
#swtws
— @yhirose741
これでKuriを使う準備ができました。 今度は本機能である`generate`機能を使ってみましょう。
generate
用のコマンドは下記の通りです。
$ kuri generate [Prefix]#swtws
— @yhirose741
一つ例を示します。 xcodeprojectがあるディレクトリで $ kuri generate Kuri を実行します。 するとKuriRepository, KuriEntityといったファイルが生成されます。
#swtws
— @yhirose741
そして、Kuriの特徴として`generate`コマンドで生成されたファイルは自動的に xcodeprojectにimportされています。これ超便利。すごい(自画自賛)
これでファイルを作ってimportする手間
コードの記述量の削減を確認できたと思います。#swtws
— @yhirose741
10----------------------- Kuriにはこのほかにもより便利に使えるオプション等があります。 詳細はgithubのREADMEをご覧ください。
Kuri: https://github.com/bannzai/Kuri
いいねと思ったらStarください
ごTwieet聴ありがとうございました!#swtws
— @yhirose741