import 'package:cargocalculaterapp/service/notification_service.dart'; import 'package:firebase_crashlytics/firebase_crashlytics.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_native_splash/flutter_native_splash.dart'; import 'app.dart'; import 'core/app_bloc/app_bloc.dart'; import 'injector_container.dart' as di; import 'injector_container.dart'; void main() async { WidgetsBinding widgetsBinding = WidgetsFlutterBinding.ensureInitialized(); FlutterNativeSplash.preserve(widgetsBinding: widgetsBinding); await NotificationService.initialize(); /// init crashlytics FlutterError.onError = FirebaseCrashlytics.instance.recordFlutterError; PlatformDispatcher.instance.onError = (error, stack) { FirebaseCrashlytics.instance.recordError(error, stack); return true; }; /// bloc logger if (kDebugMode) { Bloc.observer = LogBlocObserver(); } await di.init(); runApp(const MyApp()); } class MyApp extends StatelessWidget { const MyApp({super.key}); @override Widget build(BuildContext context) { return MultiBlocProvider( providers: [BlocProvider(create: (_) => sl())], child: const App(), ); } } // flutter pub run flutter_launcher_icons:main // flutter run -d windows --no-sound-null-safety // flutter build apk --release --no-sound-null-safety // flutter build apk --split-per-abi --no-sound-null-safety // flutter build appbundle --release --no-sound-null-safety // flutter pub run build_runner watch --delete-conflicting-outputs // flutter pub run flutter_native_splash:create