Files
geo/app/lib/main.dart
pierre 2f5946a184 feat: Version 3.5.2 - Configuration Stripe et gestion des immeubles
- Configuration complète Stripe pour les 3 environnements (DEV/REC/PROD)
  * DEV: Clés TEST Pierre (mode test)
  * REC: Clés TEST Client (mode test)
  * PROD: Clés LIVE Client (mode live)
- Ajout de la gestion des bases de données immeubles/bâtiments
  * Configuration buildings_database pour DEV/REC/PROD
  * Service BuildingService pour enrichissement des adresses
- Optimisations pages et améliorations ergonomie
- Mises à jour des dépendances Composer
- Nettoyage des fichiers obsolètes

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 18:26:27 +01:00

67 lines
2.2 KiB
Dart
Executable File

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter/foundation.dart' show kIsWeb;
import 'package:flutter_web_plugins/url_strategy.dart';
import 'package:geosector_app/core/services/api_service.dart';
import 'package:geosector_app/app.dart';
import 'package:hive_flutter/hive_flutter.dart';
void main() async {
// IMPORTANT: Configurer l'URL strategy pour éviter les # dans les URLs
usePathUrlStrategy();
WidgetsFlutterBinding.ensureInitialized();
// Initialiser les services essentiels
await _initializeServices();
// Initialiser Hive de façon minimale (le traitement lourd se fait dans splash)
await _initializeHive();
// Configurer l'orientation de l'application (mobile uniquement)
if (!kIsWeb) {
await SystemChrome.setPreferredOrientations([
DeviceOrientation.portraitUp,
DeviceOrientation.portraitDown,
]);
}
// Lancer l'application
runApp(const GeosectorApp());
}
/// Initialise les services essentiels
Future<void> _initializeServices() async {
try {
// Initialiser ApiService en premier
await ApiService.initialize();
debugPrint('✅ ApiService singleton initialisé');
// Les services CurrentUserService et CurrentAmicaleService s'initialisent automatiquement
// au premier accès via le pattern singleton lazy
debugPrint('✅ CurrentUserService prêt');
debugPrint('✅ CurrentAmicaleService prêt');
// AppInfoService ne nécessite pas d'initialisation (constantes statiques)
debugPrint('✅ Tous les services initialisés avec succès');
} catch (e) {
debugPrint('❌ Erreur lors de l\'initialisation des services: $e');
rethrow; // Important pour arrêter l'app si les services critiques échouent
}
}
/// Initialise Hive de façon minimale (le traitement lourd se fait dans splash_page)
Future<void> _initializeHive() async {
try {
debugPrint('🔧 Initialisation minimale de Hive...');
// SEULEMENT l'initialisation de base - pas d'adaptateurs, pas de Box
await Hive.initFlutter();
debugPrint('✅ Hive initialisé (traitement lourd dans splash_page)');
} catch (e) {
debugPrint('❌ Erreur Hive: $e');
rethrow;
}
}