Start Debugging

flutter

162 件 · ページ2/17

修正: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is X, expected version is Y (Flutter Android)

依存ライブラリが、ビルドのコンパイラーより少なくともマイナーバージョン 2 つ新しい Kotlin でビルドされています。settings.gradle.kts の org.jetbrains.kotlin.android のバージョンを X マイナス 1 以降に上げるか、依存ライブラリを古いバージョンに固定してください。
2026-10-19 flutterdarttheming

Flutter で ThemeExtension を使ってカスタムデザイントークンを定義し、ライトテーマとダークテーマの間でアニメーションさせる方法

ThemeExtension をサブクラス化し、extensions リストで ThemeData ごとに 1 つのインスタンスを登録し、Theme.of(context).extension<T>() で読み取ります。さらに本物の lerp を書いて、ライトとダークの切り替え中に MaterialApp の AnimatedTheme がトークンを補間できるようにします。色、角丸、シャドウ、テキストスタイル、真偽値の扱い、拡張が見つからないときのクラッシュ、他のすべての拡張を消してしまう copyWith の落とし穴、== と hashCode が必要な理由まで、すべて Flutter 3.44.8 のウィジェットテストで検証しています。

Flutter で子ウィジェットの型が変わらないときに AnimatedSwitcher をアニメーションさせる方法

AnimatedSwitcher は Widget.canUpdate が新しい子を別のウィジェットと判定したときだけ遷移します。そのため、キーのない Text から Text への切り替えはその場で更新されるだけです。この記事では 1 行の修正、キーを置くべき位置、UniqueKey が落とし穴になる理由、静的な transitionBuilder が引き起こすスライド方向のバグ、既定の Stack によるレイアウトのずれを、Flutter 3.44.8 のウィジェットテストで検証して解説します。
2026-10-19 flutterdartandroid

Flutter で RestorationMixin を使って Android のプロセス終了後に UI 状態を復元する方法

Android はメモリを確保するためにバックグラウンドの Flutter アプリを終了させ、ユーザーが戻ってくると StatefulWidget はすべて初期状態から始まります。restorationScopeId、RestorationMixin、Restorable プロパティで復元を有効にし、テキストフィールド、スクロール位置、push したルートを復元し、独自の RestorableValue を書き、restartAndRestore と adb ですべてをテストする方法を解説します。Flutter 3.44.8 と Android 16 エミュレーターで検証済みです。

Flutter で runZonedGuarded と PlatformDispatcher.instance.onError を使って捕捉されない非同期エラーをキャッチする方法

FlutterError.onError が受け取るのは、フレームワークのコールバック内で投げられたエラーだけです。await しない Future、タイマー、ストリーム、await の後のコードで起きたエラーは別の場所に流れます。どのハンドラーがどのエラーを捕捉するかを Flutter 3.44.8 で計測し、Web を含めてすべてを捕捉する main() の設定を紹介します。
2026-10-18 dartflutterstreams

rxdart の BehaviorSubject なしで Dart Stream の最新値を後から購読するリスナーに再送する方法

broadcast の StreamController は、購読する前に発行されたイベントをすべて破棄します。ここでは、Stream.multi で作る依存関係なしの BehaviorSubject 代替、既存のストリームに使える replayLatest() 拡張、イベントを黙って取りこぼす async* の近道、StreamBuilder の initialData の注意点を、すべて Dart 3.12.2 で検証して紹介します。

Flutter アプリのローカルストレージを Hive から Drift へ移行する (hive_ce 2.22 から drift 2.35 へ)

既存の Hive box を、ユーザーの端末上の drift SQLite データベースへ一度だけ安全にインポートする方法です。スキーマ設計、インポート関数、冪等性、box の削除に加えて、データを黙って壊す 2 つの落とし穴 (DateTime の精度とクラス名の衝突) を扱います。Flutter 3.44.8、hive_ce 2.22.0、drift 2.35.2 で検証しています。
前へ 次へ