SwiftLintを使ってコード規約に則ったチーム開発を目指そう!
本日はSwiftLintを紹介したいと思います。
SwiftLintとは
チーム内で1つのコード規約に則って開発することを補佐してくれる静的解析ツールです。
JavaScriptであればJSLintやJSHint(最近であればESLintでしょうか)ですし、
Objective-CであればOCLintが主流かと思います。
それのSwift版ですね。
筆者はあまり大規模なチーム開発を経験したことがないので、
SwiftLintを使ったことがありません。
なので、逆に新鮮な心持ちで使い方や良いなと思う点について紹介できればと思っています。
SwiftLintの導入方法
早速、SwiftLintを導入していきましょう。
1.homebrewでインストール
下記コマンドでSwiftLintをインストールできます。
brew install swiftlint
2.SwiftLintを適用したいXcodeプロジェクトの設定を変更
下図のように Run Script を追加しましょう。
続いて、下記のShell Scriptを記載しましょう。
1 2 3 4 5 |
|
たったこれだけで準備完了です。
非常に簡単ですね!
SwiftLintを使ってみよう
導入ができたので、SwiftLintを使っていきたいと思います。
因みに、今回導入したSwiftLintはバージョン 0.8.0 です。
実際にBuildしてみるとわかるのですが、
デフォルトで設定されているチェック内容では厳しすぎて気が遠くなります…。
特にCocoaPodsでオープンソースのライブラリをプロジェクトに追加している場合、
おびただしい数のErrorとWarningが出ます。
よって設定をカスタム化したいと思います。
カスタム化は非常に簡単です。
xcodeprojファイルと同階層に.swiftlint.yml
ファイルを作成します。
このファイルに設定可能なものは下記になります。
disabled_rules
デフォルトで有効となっているルールの中から無効にしたいルールを設定opt_in_rules
デフォルトで無効となっているルールの中から有効にしたいルールを設定whitelist_rules
他の2つとの併用はできず、これに記載したルールのみ適用したい場合に設定included
SwiftLintの対象に含めるファイルのパスを記載excluded
SwiftLintの対象から外すファイルのパスを記載
.swiftlint.yml
を作成する前のデフォルト設定は下図の通りです。
swiftlint rules
とコマンドを打てば確認できます。
因みに、SwiftLintのコマンドは下記です。
1 2 3 4 5 6 7 |
|
筆者が作成した.swiftlint.yml
ファイルは下記になります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
|
実際に使ってみた結果、
チームとして開発するには非常に良いのではないかと思いました。
ただ、デフォルトの設定項目では全てをカバーし切れないことがあるように感じました。
なので、自前ルールを作成する機会がそれなりにある気がしました。
SwiftLintのREADMEにも記載がある通り、
SwiftLintでは自前でルールを作成することができます。
といったところで本日はここまで。
参考: