52 lines
1.6 KiB
Dart
52 lines
1.6 KiB
Dart
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<AppBloc>())],
|
|
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
|