import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:go_router/go_router.dart'; import 'package:hive_flutter/hive_flutter.dart'; import 'core/constants/app_constants.dart'; import 'core/services/storage_service.dart'; import 'core/utils/app_router.dart'; import 'core/utils/app_theme.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); // Initialize Hive await Hive.initFlutter(); // Initialize Storage Service await StorageService.init(); runApp( ProviderScope( child: const DramaLingApp(), ), ); } class DramaLingApp extends ConsumerWidget { const DramaLingApp({super.key}); @override Widget build(BuildContext context, WidgetRef ref) { final router = ref.watch(routerProvider); return ScreenUtilInit( designSize: const Size(375, 812), minTextAdapt: true, splitScreenMode: true, builder: (context, child) { return MaterialApp.router( title: AppConstants.appName, debugShowCheckedModeBanner: false, theme: AppTheme.lightTheme, darkTheme: AppTheme.darkTheme, themeMode: ThemeMode.system, routerConfig: router, builder: (context, widget) { return MediaQuery( data: MediaQuery.of(context).copyWith(textScaleFactor: 1.0), child: widget!, ); }, ); }, ); } }