main()
関数から始まり、runApp()
にWidget
を渡すことで画面を作るimport 'package:flutter/material.dart';
void main() {
runApp(const MyApp()); // アプリのスタート地点
}
class MyApp extends StatelessWidget {
const MyApp({super.key}); // StatelessWidget = 状態を持たない画面
@override
Widget build(BuildContext context) {
return const MaterialApp( // Flutter標準のアプリ構造
home: Center(
child: Text("Hello Flutter!"),
),
);
}
}
StatelessWidget
:状態を持たないWidget(固定UI)const MyApp
:コンストラクタ
const
がない場合は実行のたびに新しいインスタンスを作るが、ある場合は同じ内容ならば前に作ったものをそのまま使うMyApp
はStatelessWidget
なので、インスタンスを毎回作らず定義として再利用するようにコンパイラに伝える{super.key}
:親クラス(StatelessWidget
)のコンストラクタにkey
をそのまま渡すMyApp({Key? key}) : super(key: key);
の省略記法@override
:
Widget build(BuildContext context)
:
context
:Widgetツリー上の位置やテーマにアクセスするための情報home
, child
:名前付き引数ListView(
children: const [
Text("A", key: ValueKey("A")),
Text("B", key: ValueKey("B")),
Text("C", key: ValueKey("C")),
],
)
ValueKey(value)
:値で識別(文字列や数字を渡すことが多い)UniqueKey()
:その場で絶対ユニークなキーを作るObjectKey(object)
:オブジェクトそのもので識別const MyWidget({super.key})
を入れておく