【Android/Kotlin】ktlintで静的解析を実行する方法

この記事からわかること
- Android Studio/Kotlinで静的解析を導入する方法
- ktlintの使い方
\ アプリをリリースしました /
環境
- Android Studio:Meerkat
- Kotlin:2.0.21
- ktlint:1.6.0
静的解析ツールとは?
「静的解析ツール」とはプログラムが記法や規約に則って記述されているかを自動で解析するためのツールです。これを使用することでルールに準じていないコードを特定でき、修正箇所を簡単に識別できるようになります。
プログラムが一定のルールに則って記述されることで冗長なコードのリファクタリングによるコンパイル時間の短縮や可動性向上による複雑性の緩和と保守しやすいコードを保つことができます。
ktlintとは?
ktlintはKotlinで使用できる静的解析ツールです。チェックできる項目は多く、インデントやスペース、変数の命名などなかなか人では気づきにくい部分もツールを使用することで簡単に識別することが可能です。
また自動整形機能も搭載されているのでプロジェクト内のコードを一括で修正することも可能です。
解析を行うのは.kt
/.kts
のKotlinで記述されたファイルです。プロジェクトルートから再帰的に検索しながら全体を解析してくれます。
Homebrewでの導入方法と使い方
ktlint
をHomebrewを使用してインストールするには以下のコマンドを実行します。導入はこれだけで完了であとはプロジェクトのルートディレクトリに移動して実行コマンドを叩くだけです。
静的解析を実行するにはktlint
コマンドを実行するだけです。
実行すると静的解析に引っかかった部分のパスとファイル名、行数、違反内容が表示されます。最後には違反を検知した内容と総数も表示してくれます。
プロジェクト全体ではなく特定のファイルのみ走らせたい場合はパスを指定することで絞り込むことができます。
自動整形を実行する
自動整形機能を実行する場合は-F
オプションをつけるだけです。これで冗長な処理や不要なインテントなどを自動で修正してくれます。また自動整形を実行した際も静的解析は実行されます。
Gradleから導入する
※ 結論:導入〜実行まで期待通りに行うことができませんでした。知見のある方いれば教えて欲しいです。
ktlintをGradleプロジェクトで簡単に使えるようにするためのプラグインとしてktlint-gradle
が用意されています。公式のREADMEに記載の通りに追加してみました。
静的解析を実行する以下のコマンドを叩いてみたのですがBUILD SUCCESSFUL
と出るだけで期待通りに静的解析のログが表示されませんでした。
reporter
を指定してみたりしたのですがそれっぽいファイルは生成されませんでした。。
自動整形は以下のコマンドです。
.editorconfigでルールを設定
ktlintで適応される静的解析ルールは.editorconfig
ファイルをプロジェクトルートに設置して設定します。設定できるルールの種類は以下を参考にしてください。
公式リファレンス:ktlint-Standard rules
.editorconfig
ファイルの中には反映させたい範囲と無効化するルールを記述します。ルール名には接頭辞にktlint_standard_
を付与する必要があるようです。
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。