mirror of
https://github.com/falsycat/ar.falsy.cat.git
synced 2024-10-29 17:04:52 +00:00
1.6 KiB
1.6 KiB
title | tags | ||||
---|---|---|---|---|---|
flutter |
|
概要
- flutterはマルチプラットフォーム GUIアプリケーション フレームワーク
- iOS/Android,Web,Windows/Linux/Mac,組み込み
- Google製
- 使用言語はDart
環境構築
- dart + flutterをインストール
- VSCodeにflutter用の拡張機能を追加
豆知識
ウィジェットツリー
main
関数からrunApp
にウィジェットツリーを渡すことでメインループが始まる- ウィジェットはStatelessなものとStatefullなものに大別できる
- Statefullなウィジェットが更新(
setState
)されると,そのウィジェットとその子孫のツリーが全て再構成(build
)される- パフォーマンス悪そうに見えるけれど,ウィジェットツリーの変更部分のみをシステム内部のエレメントツリーに反映することで画面更新を行なっているので,最適化はされている
- HTMLレンダラみたいな感じ
画面遷移
- Navigatorが現在の画面の状態スタックを持つ
- pushで画面遷移
- コルーチンのawaitで,遷移先がpopされた時の値を受け取れる
- popで前の画面に戻る
- ユーザーからの戻るボタン押下でも勝手にpopされ得る
- 呼び出し元へ返す値を引数に設定できる
- pushで画面遷移
// push (遷移後の画面がpopされるまでyield)
final ret = await Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => Widget(),
),
);
// pop
Navigator.of(context).pop("hello");