Search
flutter
Last updated
Jun 29, 2023
# 概要
- 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され得る
- 呼び出し元へ返す値を引数に設定できる
1
2
3
4
5
6
7
8
9
| // push (遷移後の画面がpopされるまでyield)
final ret = await Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => Widget(),
),
);
// pop
Navigator.of(context).pop("hello");
|