Flutterやってみて詰まったところや疑問に思ったところをとりあえず残していく
Future<dynamic>型ってなんだ?
Futureは非同期処理をするときの戻り値の型で、Future<String>とすると、awaitするとStringが返ってくるという型
dynamicは型が決まっていない時に使う。
詰まったところ
CocoaPodsがインストールされているにもかかわらず、読み込めない
対処
ターミナルからAndroid Studio.appを開く
open /Applications/Android\ Studio.app
Firebaseを入れるとバージョン関係のエラーが多数出た
こちらの教材をなぞっています。
アンダースコアをつける変数とつけない引数の違いは?
慣習的なもの?
動作に影響する?
[VERBOSE-2:ui_dart_state.cc(209)] Unhandled Exception: MissingPluginException(No implementation found for method DocumentReference#set on channel plugins.flutter.io/firebase_firestore)
flutter clean して再起動したら治った
【メモ】
Map型はkeyとvalueで値を管理する型、keyとvalueの方を用いて定義する。
Map<String, String>のような感じ。(keyもvalueもStringの場合)
StreamBuilderってなんだ
非同期で描画するUIを返すための型、streamとbuilderを引数に取る。
StreamBuilderは変更があれば、画面を描画し直す。(ストリーミングに近いイメージ)
似た型としてFutureBuilderがある。こちらはデータを一回だけ取得してきてデータに変更があっても再描画しない。
たとえば、Firestoreを使う場合は以下のようになる。
StreamBuilder(
stream : [クエリorドキュメント].snapshots(),
builder : (context,snapshot) {
return Container();
},
);
FutureBuilder(
future : [クエリorドキュメント].get(),
builder : (context,snapshot) {
return Container();
},
);