void main() {
// 종속성 주입, 환경 초기화 등의 코드
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp(
options: DefaultFirebaseOptions.currentPlatform,
);
runApp(MyApp());
}
runApp(MyApp());
// 최상위 위젯을 전달함. 보통 MaterialApp이나 CupertinoApp
void runApp(Widget app) {
final WidgetsBinding binding = WidgetsFlutterBinding.ensureInitialized();
_runWidget(binding.wrapWithDefaultView(app), binding, 'runApp');
}
WidgetsFlutterBinding은 Flutter의 엔진과 프레임워크를 연결하는 클래스. ensureInitialized() 메서드를 통해 초기화.
Future<void> _runWidget(Widget app, WidgetsBinding binding, String debugEntryPoint) {
assert(binding.debugCheckZone(debugEntryPoint));
binding
..scheduleAttachRootWidget(app)
..scheduleWarmUpFrame();
}