2 min readJan 14, 2020
[Flutter] main 메소드에서 비동기 메소드 사용시 반드시 추가해야하는 한줄
Flutter는 main 메소드를 앱의 시작점으로 사용합니다. main 메소드에서 서버나 SharedPreferences 등 비동기로 데이터를 다룬 다음 runApp을 실행해야하는 경우 아래 한줄을 반드시 추가해야합니다.
WidgetsFlutterBinding.ensureInitialized();
예:
void main() {
WidgetsFlutterBinding.ensureInitialized();
Timer(Duration(seconds: 10), () {
runApp(MyFlutterApp());
});
}
이 메소드는 async-await의 경우에도 마찬가지로 필요합니다.
runApp 메소드의 시작 지점에서 Flutter 엔진과 위젯의 바인딩이 미리 완료되어 있게만들어줍니다.
- runApp : https://pub.dev/documentation/flutter_for_web/latest/widgets/runApp.html
- WidgetsFlutterBinding.ensureInitialized : https://api.flutter.dev/flutter/widgets/WidgetsFlutterBinding/ensureInitialized.html