Flutter 3.10への更新と「This is the overridden method」のエラー対応

はじめに

Flutter 2.10とDart 3に既存プロジェクトを更新しました!そのときの更新したことをメモっておきます。
あと、色々と翻訳しました。

Flutter 3.10での新機能について by Kevin Chisholm

Dart 3を発表@Google I/O 2023

したこと

  • ターミナルでFlutter のバージョンアップ
flutter upgrade
  • pubspec.yaml の設定を変更
environment:
  sdk: '>=3.0.0 <4.0.0'

発生したエラー

ここから、本編。

1つ目

エラー内容

  • This is the overridden method (‘onDragSelectionEnd’). void onDragSelectionEnd(TapDragEndDetails details) {
  • This is the overridden method (‘onSingleTapUp’). void onSingleTapUp(TapDragUpDetails details) {
  • ‘TapDragUpDetails’, in the overridden method, ‘TextSelectionGestureDetectorBuilder.onSingleTapUp’. – ‘TapUpDetails’ is from ‘package:flutter/src/gestures/tap.dart’

みたいなのがズラズラと。

解決方法

pubspec.yamlに以下を追加

dependency_overrides:
  macos_ui:
    git:
      url: https://github.com/Mayb3Nots/macos_ui.git
      ref: dev
dev_dependencies:
  flutter_test:
    sdk: flutter

2つ目

状況

asdfを使用していて、Flutter 2.10になったが、Dart 2のまま。

解決方法

パスを通し直しました。具体的には以下を実行。パスを書いているファイルによって名前は変えてください

source ~/.zshrc

パッケージの更新

  • custom_lint(0.3.4→0.4.0)

  • go_router(3.1.0→7.0.1)

  • google_mobile_ads(2.3.0→3.0.0)

おわりに

以上で、Flutter 2.10にアップデータできました。Flutter 1 のときと違い、パッケージも問題なく動作しました。GoRouterをわざと古めのバージョンを使っており、ダメでした。最新にしたら動きました。
だが、まだDart 3 の新しい書き方、Flutter3でのビルドなどはまだ。
俺たちの戦いはまだ始まったばかりだ!(さくしん先生の次回作にご期待下さい)

参考