Flutterでいくつかハマったポイント
Flutterを使って個人アプリの開発を行った際にいくつかつまづいた点があるので、
もし同じポイントでつまづいている人の役に立てればと思い書きます。(flutter, dart は更新が激しくて、情報も少ないので苦労します)
①ホットリロードができない
FlutterといえばHotReloadが売りですね。
本来なら、VScodeで変更し、保存を押したら即座にSimulator上に変更点が反映されるはずなのですが、
自分が作業時に変更を保存すると以下の画面が出てきました。
「あれ?no element??画面をリロードしたらデータが読み込まれる前にページがrenderingされるのかな??」
などと考え、いろいろfirebaseの読み込むタイミングを変えたりしたのですが、、、うまくいかず。
結論。main.dartのRoutingにvalueを使用していると上記のようなエラーが出るようです。
変更前
providers:[
ChangeNotifierProvider.value()(
value:HogeHoge(),
),
],
変更後
providers:[
ChangeNotifierProvider(
create: (ctx) => HogeHoge(),
),
],
②Image_Picker() を使うと、アプリそのものが落ちる
FlutterでNativeのDeviceのカメラ機能を使用できるPackage Image_picke。
仕様書どおりに設定して、
ボタンを押す=>カメラ起動=> 写真をとる=> ✔︎ボタン(Android)を押す
で、本来なら前のページに戻って画像のPrevierwを表示する予定だったのですが、、、、
突如アプリが終了する
しかもconsoleにはなんのエラー表示もなく、、、、、。
これは結構原因を見つけるのに苦労しました。。。結論から言うと
pubspec.yamlになんらかImage_pickerと干渉してしまうpackageを入れている
事が原因でした。
Stackoverflow などを見ていると、様々なpackageが干渉する場合があるみたいですが、
僕の場合原因となったのは、charactersと言うPackageでした。
これは元々入れていなかったpackageなのですが、VScodeでDartをupdateした際に、
consoleで謎のエラーが出まくっていたために入れていたものでした。
このPackageを削除したところ、アプリが落ちる事なく正常に動作しました。
終わりに
Flutterはまだまだ日本語のDocumentが少なく変化も激しいので、
また何かTipsがあれば健忘録として追加していきたいと思います。