flutterの勉強
get
abstract class DashboardApi {
CategoryApi get categories;
EntryApi get entries;
}
こんな感じでget
が出てきた。
どうやらこれはgetterを意味している見たい。
公式ドキュメントはこちら。
アロー演算子
double get right => left + width;
という実装に遭遇した。
assert
assert(hoge == 3);
的な使い方が出来る。
Future
非同期処理をするための型
クラスのコンストラクタの書き方がちょっと特殊。
Named constructorsという実装の仕方があるみたい。
{クラス名}.fromJson()
みたいな書き方ができるらしい。
pythonでいうところの@classmethod的なやつか
状態管理にStateクラスといいうものが使用される
Dartのmixinは多重継承みたいなことをしたい時に便利らしい。
Dartの言語しようとして多重継承は許されておらず、Flutterを使う時とかに便利になるシチュエーションがあるみたい。
throwとかExceptionとかの処理について説明されているドキュメント。
めっちゃ勉強になる。https://dart.dev/language/error-handling#exceptions
メソッド名や変数名が_で始まった場合はprivateなものとみなされるらしい
dartのスタイルガイドを見つけた
キーワード一覧が用意されてている。
flutterのテスト実行
アプリ起動
vscodeの右下で使用するデバイスを設定して
main.dartを開き、F5で実行する。
コマンドラインから
以下のコマンドでchromeで起動することができる。
flutter run --device-id chrome
マテリアルデザインってなんだ?
Widgetのchildがよくわからない。
childで指定する時とchildrenで指定する時にどんな違いがあるのかがわからない。
縦方向に並べたい時はColumn,横方向に並べたい時はRow
わかりやすい
UIの勉強をする必要がありそう。
ボタンにはどんな種類のものがあるのかとか。
finalとconstの違い
final
は実行時に値が代入され、それ以降変更ができない。
const
はコンパイル時に値が代入され、それ以降変更ができない。
状態を更新したい時はsetState関数を呼ぶようにする。
デモアプリの場合は以下のような実装になっている。
void _incrementCounter() {
setState(() {
_counter++;
});
}
実装するWIdget側でStateを継承する必要がある。
class _MyHomePageState extends State<MyHomePage>
contextの中にはページ移動の遷移情報とかが含まれてくるイメージか?
Navigator.of(context).pop();
この1行で前のページに戻ることができる👀
firebaseが便利らしい。
FireStoreを使うと複数のデバイスの状態を管理できるっぽい。
firebaseのパッケージ周りでエラーが出たのでこの記事を参考に修正。