import 'package:flutter/material.dart'; import 'package:intl/date_symbol_data_local.dart'; import 'screens/home_screen.dart'; import 'services/offline_store.dart'; import 'services/sync_service.dart'; import 'services/api_service.dart'; import 'services/security_service.dart'; import 'screens/app_lock_gate.dart'; Future main() async { WidgetsFlutterBinding.ensureInitialized(); await initializeDateFormatting('fr_FR', null); ErrorWidget.builder = (FlutterErrorDetails details) { return Material( child: SafeArea( child: Padding( padding: const EdgeInsets.all(16), child: SingleChildScrollView( child: Text( 'Erreur FIN65 mobile :\n\n${details.exceptionAsString()}', style: const TextStyle(fontSize: 14), ), ), ), ), ); }; runApp(const Fin65MobileApp()); } class Fin65MobileApp extends StatelessWidget { const Fin65MobileApp({super.key}); @override Widget build(BuildContext context) { final store = OfflineStore.instance; final apiService = ApiService(store: store); final syncService = SyncService( offlineStore: store, apiService: apiService, ); return MaterialApp( title: 'FIN65', debugShowCheckedModeBanner: false, theme: ThemeData( colorSchemeSeed: const Color(0xFF1F6FEB), useMaterial3: true, cardTheme: const CardThemeData( margin: EdgeInsets.symmetric(vertical: 4), ), ), home: AppLockGate( securityService: SecurityService(store: store), child: HomeScreen(syncService: syncService), ), ); } }