import 'dart:io'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:intl/date_symbol_data_local.dart'; import 'package:provider/provider.dart'; import 'package:sqflite_common_ffi/sqflite_ffi.dart'; import 'app.dart'; import 'data/repositories/session_repository.dart'; import 'services/target_detection_service.dart'; import 'services/score_calculator_service.dart'; import 'services/grouping_analyzer_service.dart'; import 'services/image_processing_service.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); // Initialize date formatting for French locale await initializeDateFormatting('fr_FR', null); // Initialize FFI for desktop platforms if (!kIsWeb && (Platform.isWindows || Platform.isLinux || Platform.isMacOS)) { sqfliteFfiInit(); databaseFactory = databaseFactoryFfi; } FlutterError.onError = (FlutterErrorDetails details) { FlutterError.presentError(details); }; runApp( MultiProvider( providers: [ Provider( create: (_) => ImageProcessingService(), ), Provider( create: (context) => TargetDetectionService( imageProcessingService: context.read(), ), ), Provider( create: (_) => ScoreCalculatorService(), ), Provider( create: (_) => GroupingAnalyzerService(), ), Provider( create: (_) => SessionRepository(), ), ], child: const BullyApp(), ), ); }