Start Debugging

タグ: flutter

156 件 · ページ2/16

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 で検証しています。
修正: flutter upgrade や Flutter バージョンの切り替え後に pubspec.lock が変更扱いになる
Flutter SDK は meta、vector_math、test_api、matcher のバージョンを固定しているため、SDK を変えるたびにロックファイルが再解決されます。さらに flutter upgrade は今いるプロジェクトに対して pub upgrade を実行します。リポジトリごとに Flutter バージョンを 1 つに固定し、CI でロックファイルを強制しましょう。
go_router の StatefulShellRoute で NavigationBar の選択タブを現在のルートと同期させる方法
NavigationBar.selectedIndex は、setState で持つフィールドや initState で作ったコピーではなく、StatefulNavigationShell.currentIndex から取得します。Flutter 3.44.8 と go_router 18.0.2 で検証し、ディープリンク、context.go、ブランチをまたぐ push でずれるパターン、location から算出したインデックスが誤る理由、didUpdateWidget でタブ変更に反応する方法を解説します。
2026-10-10 flutterdartflavors
Flutter の flavor とは何か。ビルドモードとどう違うのか
ビルドモード (debug、profile、release) は Flutter が Dart コードをどうコンパイルするかを決めます。flavor (dev、staging、prod) は Gradle と Xcode で定義するネイティブのビルドバリアントで、どのアプリを出荷するかを決めます。この 2 つは独立した軸であり、2 つの flavor と 3 つのモードで 6 つのビルドになります。Flutter 3.44.8 と AGP 9.0.1 で検証し、ソースは 3.47.7 で確認しています。
2026-10-09 migrationflutterios
Flutter iOS アプリを CocoaPods から Swift Package Manager へ移行する (Flutter 3.44 から 3.47)
Flutter 3.44 で iOS と macOS の既定が Swift Package Manager になりましたが、既存アプリは CocoaPods を取り除くまで CocoaPods を使い続けます。SwiftPM 対応済みのプラグインの確認方法、Xcode プロジェクトの自動移行、Podfile の安全な削除、Pods のみのプラグインや独自の Podfile ロジックへの対処、そして元に戻す方法を解説します。
前へ 次へ