68 lines
1.9 KiB
Dart
68 lines
1.9 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:flutter/foundation.dart';
|
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
|
import 'package:firebase_core/firebase_core.dart';
|
|
import 'package:intl/date_symbol_data_local.dart';
|
|
import 'dart:developer';
|
|
import 'package:provider/provider.dart';
|
|
|
|
import 'screens/splash_screen.dart';
|
|
import 'screens/register_complete_screen.dart';
|
|
import 'utils/log_manager.dart';
|
|
import 'providers/pet_provider.dart';
|
|
|
|
final GlobalKey<NavigatorState> navigatorKey = GlobalKey<NavigatorState>();
|
|
|
|
void main() async {
|
|
WidgetsFlutterBinding.ensureInitialized();
|
|
await initializeDateFormatting('ko_KR', null);
|
|
|
|
// 글로벌 에러 핸들링
|
|
FlutterError.onError = (FlutterErrorDetails details) {
|
|
FlutterError.presentError(details);
|
|
LogManager().addLog('[APP ERROR] ${details.exception}');
|
|
};
|
|
|
|
PlatformDispatcher.instance.onError = (error, stack) {
|
|
LogManager().addLog('[Uncaught Error] $error');
|
|
return true;
|
|
};
|
|
|
|
try {
|
|
await Firebase.initializeApp();
|
|
} catch (e) {
|
|
log('Firebase initialization failed: $e');
|
|
LogManager().addLog('[Firebase Init Error] $e');
|
|
}
|
|
|
|
runApp(
|
|
MultiProvider(
|
|
providers: [ChangeNotifierProvider(create: (_) => PetProvider())],
|
|
child: const RupApp(),
|
|
),
|
|
);
|
|
}
|
|
|
|
class RupApp extends StatelessWidget {
|
|
const RupApp({super.key});
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return ScreenUtilInit(
|
|
designSize: const Size(375, 812), // 기준 디자인 해상도 set
|
|
minTextAdapt: true,
|
|
splitScreenMode: true,
|
|
builder: (context, child) {
|
|
return MaterialApp(
|
|
navigatorKey: navigatorKey,
|
|
debugShowCheckedModeBanner: false,
|
|
home: const SplashScreen(),
|
|
routes: {
|
|
'/register_complete': (context) => const RegisterCompleteScreen(),
|
|
},
|
|
);
|
|
},
|
|
);
|
|
}
|
|
}
|