Flutter
Firebase (Firestore)でデータを管理していて、`DocumentReference.update(data)` を使用してデータを更新するようなシステムを開発していたら、`update`は成功しているのにfirestore上で値が書き換わらないということが起った。どうやら与えるマップのフィ…
問題→解決 iOSアプリ開発をしていて、iOS Simulatorをターゲットにしたらデバイスが一致しないぞ、と言われた。 xcodebuild: error: Unable to find a destination matching the provided destination specifier: { id:XXXX-XXXXX-XX-XXX} StackOverflowで完…
`late Object? hoge = null;` とするとnullableなのでnull代入要らないよ、と提案されるのにもかかわらず(**`avoid_init_to_null`**)、明示的な代入を覗いて`late Object? hoge;` にすると、いざ他に初期化してない場合には (`LateInitializationError: Fie…
TL;DR Flutter (Dart) でモバイルアプリを作っていたとき、Listの型キャストで以下の様に詰まった。 やりたいこと:List<子クラス>→List<親クラス>→List<子クラス>の型キャストをしたい。 問題:List<親クラス> → List<子クラス> の時点で汎化→特化ができな…
FlutterでDebug時には動いたのに、Releaseモードでは動いてくれない、という時にどうデバッグしたらよいか絶望して、どうにかした話。 ⇒ 解決策:Profileモードで実行して、printデバッグをすれば何とかなる。
Flutterでオブジェクトを比較するとき、`identityHashCode()`によるハッシュ値が使用できる。調べたい場面でブレークして、`identityHashCode(obj)`とするだけ。これで異なるスコープやsetState前後の同名の変数でもオブジェクトを比較できる。
Flutterでカメラ撮影後、CameraControllerを生成してCameraPreviewを立ち上げても何も映らない件→Future.delayed()で1[msec]だけ待ったら何とかなった
TL;DR FlutterでCameraController.takePicture()後にCameraPreviewを再起動するため、CameraControllerインスタンスを再生成・initialize()していたらAndroidでの実機デバッグ中にinitialize()が失敗してしまった。よくわからないが、インスタンスの生成→ini…
(タイトルに書いてあるものの、今回はStreamBuilderもDocumentSnapshotも関係ありません) TL;DR Firebaseからのデータの再取得と画面の更新のためにウィジェットのインスタンスを再生成→新たなインスタンスへ遷移、としてリロードボタンを設置していたが、そ…
TL; DR Flutterで遷移のときNavigatorに余計な遷移を残したくない場合、pop()→push()ではなく、pushReplacementを使う。 ⇒ Navigator.of(context).pushReplacement(MaterialPageRoute()) pop()→push()だとでコンテキストのスタックが現在のウィジェットしか…
TL;DR StatefulWidgetの@override build() 内でMaterialPageRouteによる遷移やsetState()を実行してしまうと、setState() or markNeedsBuild called during build 例外が発生するので、そういった処理はbuildが完了した後に実行されるようにWidgetsBinding.i…
TL;DR Flutterにて、Navigator.of(context)としてウィジェットを遷移するために、いつでもどこでも参照できる最新のBuildContextを保持した変数が欲しかった。 ⇒ MaterialAppのnavigatorKeyはどこからでも参照できる様子なので、main()でrunAppするとき、大…
TL;DR Flutterにて、Navigator.of(context)としてウィジェットを遷移するために、いつでもどこでも参照できる最新のBuildContextを保持した変数が欲しかった。 ⇒ MaterialAppのnavigatorKeyはどこからでも参照できる様子なので、main()でrunAppするとき、大…
関数、メソッドの引数に Map<String, dynamic> とか List <dynamic> とか与えたくなるけど、引数がOptionalの場合、適当に以下のように初期値を与えようとするとnon_constant_default_valueエラーになってしまう(”The default value of an optional parameter must be constant” とか</dynamic></string,>…