Files
Remever/lib/main.dart
2025-03-03 20:59:42 +03:00

53 lines
1.3 KiB
Dart

import 'dart:async';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:hive_ce_flutter/hive_flutter.dart';
import 'package:remever/app.dart';
import 'package:remever/env.dart';
import 'package:remever/i18n/strings.g.dart';
import 'package:remever/inject.dart';
import 'package:remever/router.dart';
import 'package:remever/services/warmup_service.dart';
void _onError(Object error, StackTrace trace) {
debugPrint('error ${error.toString()}');
}
void _flutterError(FlutterErrorDetails details) {
debugPrint('error ${details.context}');
}
bool _platformDispatcher(Object exception, StackTrace stackTrace) {
if ('$exception'.toLowerCase().contains('dio')) return true;
debugPrint('error ${exception.toString()}');
return true;
}
void main() {
runZonedGuarded(() async {
WidgetsFlutterBinding.ensureInitialized();
await Hive.initFlutter();
await configureDependencies();
configureEnv();
if (!kIsWeb) {
await ScreenUtil.ensureScreenSize();
}
FlutterError.onError = _flutterError;
PlatformDispatcher.instance.onError = _platformDispatcher;
getIt.registerSingleton<AppRouter>(AppRouter());
await getIt<WarmupService>().firstStart();
runApp(TranslationProvider(child: const MyApp()));
}, _onError);
}