【Flutter】2.8.0に対応するときに変更したこと

Dart

概要

どうも、@daiki1003です!

昨朝、 Flutter2.8.0がリリースされました!

【Flutter】2.8がリリースされていたので、まとめてみたよ
とうとう! Flutter2.8がリリースされました! 12月6日にアドカレの枠を取った時に「Flutter2.7.0について書きます!」としたのですが 全然リリースされなかったのは今となっては良い思い出です笑...

現在進行している小さなプロジェクトで導入してみたのですが、その時に変更した内容などを
軽くまとめてみたので誰かの参考になると嬉しいです。

結論から言うと、簡単な割にメリットがでかい!です。
もしこの記事に載っていること以外で対応したことがあれば教えていただけると幸いです。

Flutter自体のアップデートは割愛

Flutter自体のアップデートは今回の記事からは割愛させていただいています。

アップデートに手こずっている方はこれを機に、asdf辺りを導入していただくと
幸せになれるかもしれません。

【Flutter】え、まだfvm使ってるの?これからはasdfじゃない?
すみません、ちょっと煽ってしまいました笑 本記事では、asdfというバージョン管理ツールの導入方法を解説したいと思います。 先日、同僚から「fvmよりasdfを使いませんか?」と言う提案が。 それまで全く聞いた事なく、...

depend_on_referenced_packages

depend_on_referenced_packages

プロジェクト内で依存しているパッケージは全てpubspec.yamlに書きましょう、という警告になります。

例えば、 intlパッケージに依存しているプロジェクトがあるとします。
このintlパッケージはpathパッケージに依存しています。

この場合、 今までだとpubspec.yamlpathの記述がなくとも
import 'package:path/path.dart';が可能でした。

しかし、今回からは警告が出る、ということです。

直し方

警告が出ている全てのパッケージを直接pubspec.yamlに記述しましょう。

FIXME警告の抑制

プロジェクト内に、 FIXME:の記述があると警告が出るようになっています。

今までもTODO: (ashdik) ...などは出るようになっていたので特に驚きはないですね。

直し方

analysis_options.yaml

analyzer:
  errors:
    fixme: ignore

の様に記述します。

たぶん、警告が出ている時点でanalysis_options.yamlはあると思いますがなければ追加してください 👍

unnecessary_import

不要なimportが不要になったようです。
いや、何を言ってるんだって話なんですが笑

下記のようなimportで警告が出るようになりました。

// hoge.dart
export 'fuga.dart';
// xxx_screen.dart
import 'hoge.dart';
import 'fuga.dart'; // WARNING!!

今までは二重importは警告されていましたが、exportimport
重なっても警告は出ませんでした。

今回からこのような内容は警告となるようです。

直し方

警告でてるimport文を消すだけです笑

補足

気になったので、以下の場合を検証してみました。

// hoge.dart
export 'a.dart';
export 'b.dart';

// fuga.dart
export 'a.dart'; // hoge.dartに全て含まれている状態
// xxx_screen.dart
import 'hoge.dart';
import 'fuga.dart';

fuga.dartのimportを消せと怒られました。

// hoge.dart
export 'a.dart';
export 'b.dart';

// fuga.dart
export 'a.dart';
export 'b.dart'; // hoge.dartと同じ内容の場合
// xxx_screen.dart
import 'hoge.dart';
import 'fuga.dart';

何も怒られない!

何かの役に立つと嬉しいのだけど…笑

eol_at_end_of_file

eol_at_end_of_file

ファイル末尾に改行がないと警告が出るようです。

unnecessary_type_check

Diagnostic messages
Details for diagnostics produced by the Dart analyzer.

その名の通りですが、明らかにその型とわかっているのにisでチェックしていると怒られます。

final hoge = 'hoge';
if (hoge is String) {
  //
}

で怒られると言うことですね。

直し方

if文を削除しましょう 💪

Xcodeビルドが死ぬほど早くなっている…?

これは対応内容ではないのですが、感じた変化です。

実行環境はM1 Max メモリ32GBです。

一度キャッシュした状態とは言え、早すぎでは?
こういう地味なところが効いてくるんですよねー 😎

ちなみに、アップデート前は平均すると10秒半ばくらいでした。
大体僕の50m走と同じくらいですね。

最後に

実は直した内容はこれくらいでした。
メリットの割に対応する内容は少ないのでぜひお手元の環境でも試してみてはいかがでしょうか?

誰かのお役に立てば。

Twitterフォローお願いします

「次回以降も記事を読んでみたい!」
「この辺分からなかったから質問したい!」

そんな時は、是非@daiki1003のフォローお願いします♪

また、記事がとても役に立ったと思う人は
コーヒーを奢っていただけると非常に嬉しいです!
@daiki1003

コメント

タイトルとURLをコピーしました