Files
finger_print_app/lib/main.dart
2026-02-22 14:06:02 +03:00

55 lines
1.6 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_native_splash/flutter_native_splash.dart';
import 'core/di/injection_container.dart';
import 'presentation/blocs/theme/theme_cubit.dart';
import 'presentation/screens/splash_screen.dart';
void main() async {
try {
WidgetsBinding widgetsBinding = WidgetsFlutterBinding.ensureInitialized();
FlutterNativeSplash.preserve(widgetsBinding: widgetsBinding);
// Initialize dependency injection
await initializeDependencies();
runApp(
BlocProvider(
create: (_) => sl<ThemeCubit>()..loadTheme(),
child: const CodaApp(),
),
);
} catch (e) {
debugPrint('CRITICAL INITIALIZATION ERROR: $e');
// If initialization fails, show a simple error screen instead of a broken app
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: Padding(
padding: const EdgeInsets.all(24.0),
child: Text(
'Failed to start the app. Please try: \n1. flutter clean\n2. flutter pub get\n\nError: $e',
textAlign: TextAlign.center,
style: const TextStyle(color: Colors.red),
),
),
),
),
),
);
// Ensure splash is removed so user can see the error
FlutterNativeSplash.remove();
}
}
class CodaApp extends StatelessWidget {
const CodaApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(debugShowCheckedModeBanner: false, home: SplashScreen());
}
}