LoginSignup
0
0

More than 1 year has passed since last update.

個人開発アプリにSwiftLintを導入する

Last updated at Posted at 2021-07-31

投稿の経緯

機械的にコードチェックをおこない、コードの統一化、可読性の向上、、開発効率の向上を期待してSwiftUIで開発中の個人アプリにはじめてSwiftLintを導入したので記事にしました。

SwiftFormatを導入した記事はこちら👇
[2021/07/30更新]個人開発アプリにSwiftFormatを導入する

環境

Swift version 5.4.2
Xcode version 12.5.1

SwiftLintとは

SwiftLintとはSwiftの静的解析ツールで、コンパイラよりも詳細にソースコードの解析をすることができます。こちらのGitHubのルールに沿ってコードを解析します。

SwiftLintの導入

同一プロジェクトに導入したSwiftFormatをCocoaPodsで導入したので
統一してCocoaPodsで導入します。

PodfileにSwifLintをセットしてpod installします。

Podfile.
pod 'SwiftLint'

コマンドラインからの使い方

ターミナルを開いて導入したアプリのディレクトリでコマンドを叩くと静的解析の結果が表示されます。

cd プロジェクトのルートディレクトリ
Pods/SwiftLint/swiftlint

ビルド時に解析させるように設定する

コマンドラインで叩いたPods/SwiftLint/swiftlintをXcodeで実行できるようにしましょう。

プロジェクトのアプリ用ターゲットの左上の + ボタンをタップして、Build PhasesにNew Run Script Phaseを追加し、SwiftLintを実行できるように設定します。

"${PODS_ROOT}/SwiftLint/swiftlint"

wd.png

このようになればSwiftLintをXcodeで実行できます。

ルールをカスタム

SwiftLintのデフォルトルールで発火する警告を発火させたくない場合などにルールをカスタムします。例えば、変数名の最小文字数や1行あたりの文字数などなど...

チーム開発の場合はルールの設定内容をチーム内で議論した方が良さそうですね。個人開発の場合はお好みで。ちなみに私はあまりカスタムせず、デフォルトに従ってコードを書いています。

それではルールをカスタムします!今回は以下のルールを設定します。

Podsを対象外にする
multiple_closures_with_trailing_closureの無効化
conditional_returns_on_newlineの有効化
conditional_returns_on_newlineの有効化
1行あたりの文字数制限を450に変更
変数名が1文字以上なら許可に変更
Type名が2文字以上なら許可に変更

SwiftLintではルールの設定に.swiftlint.ymlを作成し、そこに記述します。

ターミナル.
touch .swiftlint.yml

でファイルを作成して

ターミナル.
open .swiftlint

でファイルを開いて、ルールを設定します。

・SwiftLintの対象外とする場合はexcluded:を使う
・無効とするルールを設定する場合はdisabled_rules:を使う
・デフォルトで無効とされているルールを有効とする場合はopt_in_rules:を使う
・ルールをカスタムする場合はルール名:を使う

今回カスタムするルールと👆こちらを組み合わせると。以下のようになります。

swiftlint.yml
# SwiftLintの対象外とする
excluded:
- Pods

# 無効とするルール
disabled_rules:
- multiple_closures_with_trailing_closur

# デフォで無効とされたルールを有効とする
opt_in_rules:
- conditional_returns_on_newline

# ルールをカスタム
line_length: 450 # 1行あたりの文字数制限を450に変更
identifier_name: # 変数名が1文字以上なら許可に変更
  min_length: 1

各ルールの詳細はこちらに記載されているのでざっと目を通すことをオススメします。

これでSwiftLintを導入できました。参考にしてください!

お知らせ

現在、iOS開発案件を業務委託で募集中です(副業)。TwitterDMでご依頼をお待ちしています。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0