1. HOME
  2. ブログ
  3. IT技術
  4. 【Flutter】Dart Code Metricsを使って不要ファイルや不要コードを抽出してみた
【Flutter】Dart Code Metricsを使って不要ファイルや不要コードを抽出してみた

【Flutter】Dart Code Metricsを使って不要ファイルや不要コードを抽出してみた

Dart Code Metricsを使ってみた!

(株)ライトコードの小林(こばやし)です!

皆さんは「Dart Code Metrics」をご存知でしょうか?

Dartのコードの品質を分析したり改善するのに役立つ静的分析ツールで、不要ファイルをチェックしたり、analysis_options.ymlにAnalyzer Pluginを追加して静的解析を行うことができます。

業務の中で不要ファイルや不要コードを抽出して対応する機会があったので、今回は導入から抽出までの流れをまとめていきます。

開発環境

開発環境は以下の通りです。

Flutter2.10.3

Dart Code Metricsとは?

「Dart Code Metrics」とはDartのコードの品質を分析したり改善するのに役立つ静的分析ツールです。

パッケージの詳細:https://pub.dev/packages/dart_code_metrics

ドキュメント:https://dartcodemetrics.dev/docs/cli/check-unused-code

主な機能として下記の機能があります。

  • コードメトリクスのレポート
  • dart analyzerの追加ルールの提供
  • アンチパターンのチェック
  • 未使用の*.dartファイルをチェック
  • 未使用のl10n(ローカライズ言語)をチェック
  • CLIやanalyzer plugin、ライブラリとして使用

今回はこの中で「未使用の*.dartファイルをチェック」する機能を使って未使用ファイル等を検出してみます。

※ 注意点として、2022年3月18日現在クラス内の未使用メソッドについては未対応となっています。こちらは将来のリリースで修正される予定とのことです。

未使用ファイルや未使用コードを抽出してみる

準備

サンプルプロジェクトを作成し、lib配下に下記の4つのファイルを用意しました。

main.dart

first_page.dart

second_page.dart

third_page.dart

second_page.dartでは使用されていないクラスがあり、third_page.dartはどこからも参照されていないファイルです。

dart_code_metricsを導入する

まずは、dart_code_metricsパッケージを導入します。

不要コードチェックコマンドが4.11.0-dev.1から叩けるようになっているので、それ以降のバージョンを導入しましょう。

未使用ファイルを抽出する

それでは不要ファイルを抽出してみましょう。

プロジェクトのルートで下記いずれかのコマンドを叩きます。

すると下記のような形で出力され、未使用ファイルが抽出されました。

未使用コードを抽出する

続けて未使用コードも抽出してみます。

プロジェクトのルートで下記いずれかのコマンドを叩きます。

すると下記のような形で出力され、未使用コードが抽出されました。

まとめ

今回は「Dart Code Metrics」を使って未使用ファイルとコードを抽出してみました。

CI/CDに組み込んで、定期的に不要なファイルやコードがないかを検知する仕組みを作るのも良さそうですね。

簡単に導入できるので、ぜひ試してみてください!

書いた人はこんな人

広告メディア事業部
広告メディア事業部
「好きを仕事にするエンジニア集団」の(株)ライトコードです!

ライトコードは、福岡、東京、大阪の3拠点で事業展開するIT企業です。
現在は、国内を代表する大手IT企業を取引先にもち、ITシステムの受託事業が中心。
いずれも直取引で、月間PV数1億を超えるWebサービスのシステム開発・運営、インフラの構築・運用に携わっています。

システム開発依頼・お見積もり大歓迎!

また、現在「WEBエンジニア」「モバイルエンジニア」「営業」「WEBデザイナー」「WEBディレクター」を積極採用中です!
インターンや新卒採用も行っております。

以下よりご応募をお待ちしております!
https://rightcode.co.jp/recruit

関連記事

採用情報

\ あの有名サービスに参画!? /

バックエンドエンジニア

\ クリエイティブの最前線 /

フロントエンドエンジニア

\ 世界を変える…! /

Androidエンジニア

\ みんなが使うアプリを創る /

iOSエンジニア