Files
fanuzu/app/lib/main.dart
T

36 lines
1.2 KiB
Dart

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<void> 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),
),
),
);
}