2026-06-16 migrationflutterflutter-2 Flutter 2 アプリを Flutter 3.x に移行する: null safety チェックリスト レガシーな Flutter 2.x アプリを現行の Flutter 3.x リリースへ移すための、バージョンを固定した手引きです。sound null safety への移行が厳格なゲートになります。なぜ Dart 2.19 を経由する 2 段階の経路が必要か、dart migrate が何をするか、そして途中で何が壊れるかを解説します。
2026-06-16 flutterdartriverpod Flutter で provider から Riverpod へ移行する (provider 6.1.5 から Riverpod 3.x へ) 実際の Flutter アプリで provider パッケージから Riverpod 3.x へ段階的に移行する手順です。ChangeNotifierProvider から Notifier へ、MultiProvider から ProviderScope へ、context.watch から ref.watch へ、ProxyProvider から ref.watch による合成へ、加えて引っかかりやすい等価性とライフサイクルの落とし穴も解説します。Flutter 3.27.1、Dart 3.11、provider 6.1.5、flutter_riverpod 3.3.1 で検証済みです。
2026-06-15 comparisonflutterdart Flutter の FutureBuilder/StreamBuilder と Riverpod の AsyncValue: どちらを使うべきか 自己完結した使い捨ての非同期ウィジェットには FutureBuilder または StreamBuilder を使います。結果が共有され、キャッシュされ、ミューテートされるようになったら Riverpod の AsyncValue に切り替えます。ここに判断基準、落とし穴、両方の実行可能なコードがあります。Flutter 3.44 と flutter_riverpod 3.3.1 で検証済みです。
2026-06-14 errorsflutterdart 解決: Flutter Riverpod で Bad state: Cannot use "ref" after the widget was disposed このクラッシュは、ウィジェットがツリーを離れた後に WidgetRef を使用したことを意味します。多くは非同期コールバックで起きます。必要なものを await の前に読み取り、mounted チェックで保護してください。
2026-06-14 errorsflutterdart 解決: Flutter の Looking up a deactivated widget's ancestor is unsafe このクラッシュは、ウィジェットがツリーから外れた後に context.of() を呼び出したことを意味します。通常は非同期コールバックや dispose() の中です。await の前か didChangeDependencies() で値を取得してください。
2026-06-09 flutterdartfuturebuilder Flutter で FutureBuilder が再ビルドのたびに Future を再生成しないように初期化する方法 FutureBuilder は親が再ビルドされるたびに非同期処理を再実行します。これは Future を build の中で生成しているためです。Future を State.initState に移す(あるいはメモ化する)と、FutureBuilder は同じ Future を再利用します。ここではその理由、再現例、そして噛みついてくるあらゆるバリエーションを説明します。
2026-06-04 dartflutter Dart 3.12 が実験フラグの背後でプライマリコンストラクターを導入 Dart 3.12 は、フィールドとコンストラクターをクラスのヘッダーで宣言する実験的なプライマリコンストラクター構文を追加し、従来の3行のデータクラスを1行に縮めます。
2026-06-04 comparisonflutterdart 2026 年の Flutter 状態管理における Provider vs Riverpod vs Bloc 2026 年のほとんどの新しい Flutter アプリには Riverpod を選びましょう。大規模チームが強制されたイベント駆動の構造を求める場合は Bloc を、Provider はレガシーコードのためだけに残します。
2026-06-03 errorsflutterdart 解決: Flutter の RenderBox was not laid out RenderBox was not laid out はほぼ常に二次的なエラーです。その上にある最初の layout のアサーション、通常は制約が非有界な scrollable を見つけて修正してください。
2026-06-03 errorsflutterdart 解決: Flutter で A TextEditingController was used after being disposed このクラッシュは、dispose() の実行後にコントローラーへアクセスしたことを意味します。非同期コールバックは mounted チェックで保護し、自分が所有していないコントローラーは決して破棄しないでください。