WidgetsFlutterBinding.ensureInitialized() 란?
- 앱을 실행하기 전에 프레임워크의 초기화를 처리하는 메서드다.
역할
플러터 프레임워크 초기화
- 프레임워크와 Flutter 엔진을 연결하는 역할을 한다.
- 프레임워크로부터 엔진과의 바인딩을 초기화하는데, 이는 프레임워크의 다양한 기능을 위해 필수적인 절차이다.
엔진과의 바인딩
- 바인딩 프로세스에는 Dart 코드와 기본 플랫폼별 코드 간의 통신 채널을 설정하여 UI 그리기, 이벤트 처리 및 기타 필수 기능을 활성화하는 작업이 포함된다.
싱글톤 패턴 구현
ensureInitialized()
는 앱의 수명 주기 동안WidgetsFlutterBinding
인스턴스가 한 번만 생성되고 초기화되도록 한다.
동작 방식
바인딩 여부 확인
- 바인딩이 이미 되어있는지 확인하고, 되어있지 않다면 바인딩한다.
인스턴스를 생성하고 붙이기
- 바인딩이 없다면,
WidgetsFlutterBinding
인스턴스를 생성하여 프레임워크에 붙인다. Flutter 와 엔진이 상호작용하기 위한 기본 단계이다.
앱 실행 전 기능 활성화
runApp()
을 호출하기 전에 Flutter 프레임워크와 상호작용해야 하는 시나리오에서 이 메서드를 호출하는 것이 중요하다. 예를 들면, 플랫폼 채널에 접근하거나 플러그인을 초기화하거나 앱이 시작되기 전에 준비해야 하는 서비스를 설정하는 경우이다.
준비 상태 확인
앱 실행 전에 프레임워크가 준비되고 완전히 작동하는지를 확인하는 절차이다.
언제 쓰는가?
초기 플러그인 초기화
- 위젯을 표시하기 전에 플러그인을 초기화하거나 데이터를 가져와야 할 때
백그라운드 프로세스 처리
- UI 가 로드되기 전에 백그라운드 프로세스를 처리하거나 데이터를 가져와야 하는 앱의 경우, 이 메서드는 프레임워크가 작업을 수행할 준비가 되었는지 확인한다.
런타임 오류 방지
- 앱이 완전히 초기화되기 전에 프레임워크 기능에 액세스하려고 할 때 발생할 수 있는 런타임 오류를 방지한다.
정리
- 메인 앱 실행 전에 프레임워크가 올바르게 초기화되고 엔진에 바인딩 되었는지 확인하는 메서드다.
- 프레임워크와 초기 상호작용이 필요한 경우 효과적이다.
레퍼런스
반응형
'플러터' 카테고리의 다른 글
플러터의 Drift 라이브러리(플러그인) 이란? (0) | 2023.12.03 |
---|---|
플러터 (Flutter) 의 initializeDateFormatting() 메서드의 역할과 사용법 (0) | 2023.12.03 |
안드로이드 스튜디오 에뮬레이터 인식 안됨 (Device emulator-5554 is offline) 문제 해결 (0) | 2023.12.02 |
플러터 (Flutter) A value of type 'Null' can't be assigned to parameter of type 'double' in a const constructor 에러 (0) | 2023.11.30 |
플러터(Flutter) 의 MediaQuery 클래스란? (0) | 2023.11.30 |