[Swift] TailorでSwiftのコードを静的解析!

2016.01.14

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

はじめに

加藤 潤です。
今回はSwiftの静的コード解析ツールであるTailorをご紹介します。

tailor

Tailorとは

Swift用の静的コード解析ツールで下記のような特徴を持っています。

  • クロスプラットフォーム(Mac OS X、Linux、Windows)
  • CLIで解析を実行し、解析結果のレベルに応じてカラーリング表示
  • Xcodeのビルド時に解析を実行し、Issue Navigatorに結果を表示
  • MITライセンスで公開されている

また、コーディングスタイルガイドラインとしては下記が採用されています。

インストール

Java 8をインストール

Tailorを使うにはJava 8以上が必要です。 インストールされていない場合はこちらからインストールしてください。 筆者は下記バージョンをインストールしました。 java_8

Tailorをインストール

Homebrewがインストールされていれば下記コマンドでインストール可能です。
brew install tailor

インストール出来たのでtailor -vでバージョンを確認してみました。
tailor_version

現在のバージョンは0.2.2のようです。

CLIで実行

下記はiOSのSingle View Applicationテンプレートで新規プロジェクトを作成した直後にtailorコマンドを実行した結果です。

tailor_cli

AppDelegate.swiftとViewController.swiftで同じwarningが出ていますね。 「ファイルの終端は改行1つにしろ」とwarningで教えてくれています。

実際にAppDelegateのコードを確認したところ、ファイル終端の改行が2つになっていました。

appdelegate

Xcodeのビルド時に実行

Xcodeのビルド時にtailorを実行するようにするには下記コマンドを実行します。

tailor --xcode <xcodeprojファイルへのパス>

上記を実行することでXcodeのビルドターゲットのBuild PhasesにTailorという項目が追加されました。

tailor_target_setting

この状態でビルドしてみましょう。

tailor_build_warning

先ほどCLIで実行した時と同じwarningがXcode上に表示されていますね! ちゃんとIssue Navigatorにも一覧表示されています。

まとめ

Swiftは非常に柔軟なプログラミング言語であるため多様な書き方ができます。 それ自体は歓迎すべき事だと思いますが、反面ルールやガイドラインが無いと無秩序なソースコードになってしまう可能性もあります。 今回ご紹介したTailorなどのツールを導入することでコードの品質を一定レベルに保ち、チーム開発におけるコードレビューをしやすくするなどの効果が期待できます。 Swiftで開発されている方はぜひ導入を検討してみてはいかがでしょうか。

コマンドオプションの詳細やMac以外への導入方法等は公式のWikiをご覧ください。 また具体的にどんなルールでチェックしてくれるのかはRulesをご覧ください。