[Flutter] WidgetsFlutterBinding.ensureInitialized() 사용 이유

2023. 12. 4. 09:28플러터

파이어베이스를 사용해보기 위해 코드를 조사하고 있던 도중

다들 WidgetsFlutterBinding.ensureInitialized() 라는 코드를 맨위에 사용하고 있었는데

어째서 사용하는건가 의문을 갖게되어 알아보았습니다.

 

우선 ensureInitialized()의 종류는 WidgetsFlutterBinding와 ServicesBinding가 있습니다.

WidgetsFlutterBinding은 기본적인 Flutter 애플리케이션 바인딩이며,

ServicesBinding은 네트워크, 플러그인, 시스템 메세지, 키보드, 클립 보드와 같은 Flutter 프레임워크의 서비스에 대한 바인딩입니다.

 

ensureInitialized()은 바인딩을 초기화해주는 함수이며, 초기화를 해야만 Flutter엔진과 통신할 수 있기에 초기화를 해주어야합니다.

 

참고로 runApp()을 사용 전 에만 ensureInitialized()를 쓰는 이유는 runApp()을 열어보면 알 수 있습니다.

열 경우 아래 코드가 나오는데 내부에 ensureInitialized()함수를 이미 사용하고 있기 때문입니다.

void runApp(Widget app) {
  final WidgetsBinding binding = WidgetsFlutterBinding.ensureInitialized();
  assert(binding.debugCheckZone('runApp'));
  binding
    ..scheduleAttachRootWidget(binding.wrapWithDefaultView(app))
    ..scheduleWarmUpFrame();
}

 

마무리를 하자면 ensureInitialized() 함수는 바인딩을 초기화하는 역할을 하며, 비동기 작업 혹은 플러그인 사용 시 사용해야하는 함수입니다.

'플러터' 카테고리의 다른 글

[Flutter] 플러터 Lottie  (0) 2023.12.03
map 함수  (0) 2023.12.01
웹뷰 위젯 분석  (0) 2023.11.10
크롤링에 대하여  (0) 2023.11.09
PreferredSizeWidget 오류에 대하여  (2) 2023.10.30