Flutterでconstを一気につけたい
Flutterでconstを一気につけたい
表題の通りFlutterで一気に const
をつけてパフォーマンスをギュインギュインしていきたいな。と思って調べました
結論
このStack Overflowで知ったのですが、prefer_const_constructors
をlinterのyamlに書いて $ dart fix --apply
を実行すると機械的に const
にできる場所はconst
にしてくれるみたいです。最高
やってみた
まず上記のStack Overflowの一時回答のstatic_analysis.yaml
はanalysis_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
flutter_lintsには入っているので flutter createした初期設定にもv2.5.0以降は入るようになりましたよ😄