Open17

Flutterやってみて詰まったところや疑問に思ったところをとりあえず残していく

akatsukaakatsuka

Future<dynamic>型ってなんだ?

akatsukaakatsuka

Futureは非同期処理をするときの戻り値の型で、Future<String>とすると、awaitするとStringが返ってくるという型

dynamicは型が決まっていない時に使う。

akatsukaakatsuka

詰まったところ

CocoaPodsがインストールされているにもかかわらず、読み込めない

対処

ターミナルからAndroid Studio.appを開く

open /Applications/Android\ Studio.app
akatsukaakatsuka

アンダースコアをつける変数とつけない引数の違いは?
慣習的なもの?
動作に影響する?

y.koga46y.koga46

おそらく解決しているかと思いますが...
変数名にアンダースコアをつけるとprivate変数になり、他のクラスから参照できなくなるそうです!
なので、他のクラスから参照できなくなるので、動作に影響するといえばするかもしれません。

akatsukaakatsuka

ありがとうございます!解決してなかったです。
Dartにはprivateキーワードとかがないんですね。

akatsukaakatsuka

[VERBOSE-2:ui_dart_state.cc(209)] Unhandled Exception: MissingPluginException(No implementation found for method DocumentReference#set on channel plugins.flutter.io/firebase_firestore)

akatsukaakatsuka

【メモ】
Map型はkeyとvalueで値を管理する型、keyとvalueの方を用いて定義する。
Map<String, String>のような感じ。(keyもvalueもStringの場合)

akatsukaakatsuka

StreamBuilderってなんだ

akatsukaakatsuka

非同期で描画するUIを返すための型、streamとbuilderを引数に取る。
StreamBuilderは変更があれば、画面を描画し直す。(ストリーミングに近いイメージ)
似た型としてFutureBuilderがある。こちらはデータを一回だけ取得してきてデータに変更があっても再描画しない。

たとえば、Firestoreを使う場合は以下のようになる。

StreamBuilder(
  stream : [クエリorドキュメント].snapshots(),
  builder : (context,snapshot) {
    return Container();
  },
);
FutureBuilder(
  future : [クエリorドキュメント].get(),
  builder : (context,snapshot) {
    return Container();
  },
);
akatsukaakatsuka

MaterialColorとColor型の違い

akatsukaakatsuka

Color型は一通りの色を表す型 Color(0xffffffff)のように書く。
0xは「16進数のIntですよ」という意味で、その後ろは2桁刻みで不透明度、RGBを00~ffまでの数値で表す。
MaterialColorは50,100,200,...,900までの10通りの色(Color型)とデフォルトカラーをまとめた形式。用途の一例はPrimarySwatchで、濃淡いろいろな色を使うことがあるのでColorではなくMaterialColor型が必要。