🗿

Flutterでconstを一気につけたい

2022/02/28に公開1

Flutterでconstを一気につけたい

表題の通りFlutterで一気に const をつけてパフォーマンスをギュインギュインしていきたいな。と思って調べました

結論

このStack Overflowで知ったのですが、prefer_const_constructors をlinterのyamlに書いて $ dart fix --apply を実行すると機械的に constにできる場所はconstにしてくれるみたいです。最高

https://stackoverflow.com/questions/69309972/flutter-2-5-update-const-keyword-on-every-static-widget

やってみた

まず上記のStack Overflowの一時回答のstatic_analysis.yamlanalysis_options.yamlに読み替えてやります。おそらく前者は古いファイル?なんですかね。なぜその名前で書かれているのかはわかってないですが、Flutterの静的解析の設定ファイルの名前は現在はanalysis_options.yamlなのでこちらに書いていきます

$ git diff

 linter:
   rules:
+    - prefer_const_constructors

VSCodeでまずlinterの設定が有効になっているかを確認します。すごい数のwarnが出ましたね。ついでにSmallAppOutlinedButton#paddingにconstが出ていない表示がされているのでその部分をスクショしました。before,afterで比べてみましょう

次に大本命の$ dart fix --applyをやります

めっちゃ動いてます。進行中は下のようなログが出続けます

$ dart fix --apply

lib/components/atoms/buttons.dart
  prefer_const_constructors • 10 fixes

lib/components/atoms/color.dart
  prefer_const_constructors • 10 fixes

終わりました。ファイル数だけでも151ファイル分のconstが着きました。すごい

$ git diff --name-only | wc -l
151

実行後のVSCodeのスクショです。warningが全部消えてますね。ンギモチィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィッ

まとめ

蛇足ですが、なんでこれ気づかなかったんだろう。と思いましたが、flutter create した時のプロジェクトの analysis_options.yaml には入ってないんですね。全部載っているものだと思ってた。

const を一気につけたい方はこの技をお使いください

おしまい \(^o^)/

Discussion