import 'package:flutter/material.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'app.dart'; import 'core/firebase/firebase_boot.dart'; import 'features/auth/auth_repository.dart'; import 'features/auth/firebase_auth_session.dart'; import 'features/auth/onboarding_data.dart'; /// 소개 3장(온보딩 ①)을 이 기기에서 넘겼는가. const _introSeenKey = 'onboarding.introSeen'; Future main() async { WidgetsFlutterBinding.ensureInitialized(); // 설정 파일이 없으면 목 모드로 내려간다. 여기서 throw 하지 않는다 — FirebaseBoot 참고. await FirebaseBoot.init(); final live = FirebaseBoot.isLive; final session = live ? FirebaseAuthSession() : null; var introSeen = true; try { introSeen = (await SharedPreferences.getInstance()).getBool(_introSeenKey) ?? false; } catch (_) {} runApp( FancakeApp( auth: AuthRepository( session: session, needsOnboarding: live ? needsOnboardingFirestore : null, introPending: !introSeen, onIntroDone: () async => (await SharedPreferences.getInstance()) .setBool(_introSeenKey, true), ), ), ); }