2026-07-18 errorsflutterdart 解決: ScaffoldMessenger.of() was called with a context that does not contain a Scaffold (Flutter) このエラーは、渡した BuildContext が Scaffold や ScaffoldMessenger の下ではなく上にあることを意味します。呼び出しを Builder で包むか、独立したウィジェットに切り出すか、GlobalKey を使ってください。
2026-07-18 errorsdartflutter 解決: Dart の type 'Null' is not a subtype of type 'X' この実行時エラーは、null 非許容の型を期待するキャストに null が到達したことを意味し、ほとんどの場合 JSON が原因です。フィールドを null 許容にするか、キャストの前にデフォルト値を与えてください。
2026-07-14 flutterdartanimation Flutter で 2 つの画面間に Hero アニメーションを追加する方法 両方のルートで同じウィジェットを同一の tag を持つ Hero でラップすると、Flutter がナビゲーション中にその位置とサイズをアニメーションします。完全ガイド:画像、flightShuttleBuilder、createRectTween、RectTween の弧、ジェスチャー遷移、そしてすべてを壊す tag の衝突。Flutter 3.44、Dart 3.12 で検証。
2026-07-13 flutterdartasync Flutter で setState-after-dispose クラッシュを避けるために dispose で StreamSubscription をキャンセルする方法 ユーザーが画面を離れた後も stream はイベントを発行し続け、その onData がすでに破棄された State に対して setState を呼び、Flutter は例外を投げます。subscription を保持し、super.dispose の前に dispose でキャンセルすれば、コールバックは死んだ widget の上で二度と発火しません。Flutter 3.44 向けの完全なパターンです。
2026-07-13 flutterdartasync Flutter で非同期の中断後に mounted チェックで setState を守る方法 await のあと、ウィジェットはすでに破棄されている場合があり、setState を呼ぶと例外が投げられます。再開を if (!mounted) return; で守り、さらに良いのは、それを引き起こす処理自体をキャンセルすることです。Flutter 3.44 向けの完全なパターンを解説します。
2026-07-09 migrationflutterdart Flutter で Riverpod 2.x から Riverpod 3.0 へ移行する flutter_riverpod 2.x から 3.x への段階的なアップグレード手順です。パッケージを更新し、StateProvider などを legacy インポートへ移し、AutoDispose と Family の ref 型を廃止し、ProviderException のラップと自動リトライに対応し、StreamProvider のイベントを暗黙的に取りこぼす == による通知フィルタリングを修正します。Flutter 3.44、Dart 3.x、flutter_riverpod 3.3.2 で検証済みです。
2026-07-07 flutterdart Flutter 3.44: MediaQuery から画面の物理的な角の半径を読み取る Flutter 3.44 は MediaQuery.displayCornerRadiiOf を通じてデバイスの丸い角を公開します。魔法の半径を当て推量するのはやめて、Android API 31+ でハードウェアの正確なカーブに UI をクリップしましょう。
2026-07-07 flutterdartgo-router Flutter における go_router vs auto_route vs Navigator 2.0 go_router と auto_route はどちらも Navigator 2.0 の上に載っています。そのため本当の選択は、宣言的な URL ルーティング vs コード生成による型付きルート vs Router API を自前で書くことのどれを選ぶかです。それぞれの設定例を添えた意思決定マトリクスと、生の Navigator が今でも勝る場面を解説します。
2026-07-07 comparisonflutterdart Flutter の長いリストにおける shrinkWrap vs Expanded vs sliver: どれを選ぶべきか 長いリストでは shrinkWrap を絶対に使わないでください。リストが唯一のスクロール要素なら Expanded を、他のセクションとスクロールを共有するなら sliver(CustomScrollView)を使います。その理由を、build 回数のベンチマークとともに解説します。
2026-07-06 errorsflutterdart 解決策: Riverpod 3.0 が元のエラーではなく ProviderException をスローする Riverpod 3.0 はプロバイダーの読み取り中にスローされたエラーを ProviderException でラップします。その型をキャッチして e.exception を読めば元のエラーを取り戻せます。あるいは、ラップされない AsyncValue.error を使いましょう。