반응형
WidgetsFlutterBinding.ensureInitialized() 사용시기
Flutter 앱을 개발할 때 비동기 작업을 수행하고 그 결과를 기반으로 앱을 초기화해야 할 때 사용
1. 비동기 데이터 로딩 후 앱 초기화 : SharedPreferences나 Firebase와 같은 외부 소스에서 데이터를 비동기적으로 로드해야 할 때,
2. 플랫폼 채널과 통신: 네이티브 코드와 플러터 간 통신을 위해 플랫폼 채널을 설정해야 할 때,
(ex. 네이티브 코드에서 특정 기능을 호출하거나, 플러터 코드에서 네이티브 측으로 데이터를 전달)
위 2가지 경우 ensureInitialized()를 호출하여 초기화를 보장하고, 데이터 로딩이 완료된 후에 runApp() 메소드 실행하게 제어해줌!
-> main에서 async 사용할 때 필요하다고 생각하자!
void main() async {
// Flutter 앱이 실행되기 전에 초기화를 보장
WidgetsFlutterBinding.ensureInitialized();
// 비동기적으로 데이터를 로드하고 그 후에 runApp()을 호출
await loadDataFromSharedPreferences();
runApp(MyApp());
}
// SharedPreferences를 사용하는 경우!
Future<void> loadDataFromSharedPreferences() async {
// SharedPreferences에서 데이터를 로드하는 비동기 작업을 수행합니다.
// 예시: await SharedPreferences.getInstance();
}
'Flutter' 카테고리의 다른 글
[Flutter] 플러터 - Drawer keyboard 키보드 올라옴 문제 Keyboard comes up when you open drawer (0) | 2024.02.17 |
---|---|
[Xcode] invalid reuse after initialization failure (1) | 2024.02.17 |
[Flutter] 플러터 - ListView vs ListView.builder 활용 및 차이점 (0) | 2024.02.05 |
[Flutter] 플러터 - Visibility vs Opacity 위젯 숨기기와 투명도 조절 (0) | 2024.02.05 |
[Flutter] 플러터 - RiverPod 상태관리(5) StateNotifierProvider 맛보기 (1) | 2024.01.30 |