ChangJoo Park
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 엔진과 위젯의 바인딩이 미리 완료되어 있게만들어줍니다.