4
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

iOSで不要になったコードを探す

Posted at

はじめに

使っていないコードを発見することはよく経験すると思います。
長い期間運用していると負債として、重くのしかかってきます。
しかし、人間の目視やコードレビューですべて発見するのは不可能です。
そのような問題を解消するための方法について、調べました。

Xcode

  • Find -> Find Call Hierarchy を使うと呼び出している場所を検索できます。
  • 呼び出しがなければ、不要なコードとして判断できます。
    Kapture 2020-12-01 at 10.30.58.gif

外部ツール

  • ツールを使うことで不要なコードを簡単に見つけることができます。
  • CIなどで実行すれば、不要なコードを見つけやすくなります。

periphery

  • Swift製。Rulesのカスタムがしやすい。 長くメンテされている
    Pecker
  • Swift製。Rulesのカスタムがしやすい
    PaulTaykalo/swift-scripts
  • Rubyのスクリプトを使って、使われていないコードを検知します

peripheryapp

  • 今回は一番使うperipheryの使い方について説明します
  • periphery v2.2.2の環境で実行してます

導入

  • Homebrewでインストール可能です
brew tap peripheryapp/periphery && brew install periphery
  • Xcodeにターゲットを追加
    • Other -> Aggregate を選択して、追加

スクリーンショット 2020-12-01 13.10.29.png

スクリーンショット 2020-12-01 13.14.12.png

  • Build Phaseにスクリプトを追加

スクリーンショット 2020-12-01 13.17.48.png

periphery scan --project ModalTest.xcodeproj --schemes ModalTest --targets ModalTest --format xcode
  • periphery のスキームでBuildする

スクリーンショット 2020-12-01 13.20.50.png

  • 使っていないコードがwarningとして表示される

カスタマイズ

  • // periphery:ignoreのコメントを追加すると警告を無視できます
    • ノイズとなりそうな警告を消せます

スクリーンショット 2020-12-01 13.22.44.png

  • formatを変えて出力
    • xcode, csv, json, checkstyleの4つに対応しているのでCIなどで出力する際に便利です

まとめ

  • 不要なコードは定期的に削除しておきたい
  • periphery を使うと便利。CIで定期実行すると不要なコードを見つけやすくなる
4
7
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
4
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?