Aller au contenu

Vue d'ensemble

Cette section présente la structure générale de l'application Flutter ThermoNova. Le projet est organisé autour de quatre axes principaux : navigation, données, thème et gestion des plans 2D.


Entrée de l'application

  • lib/main.dart initialise Flutter, charge le mode sombre via les ValueNotifier (batman), prépare la base SQLite (création + seed) puis lance MyApp.
  • core/config/app_theme.dart définit le ThemeData commun.

  • views/widget_tree.dart orchestre les pages (accueil, propositions, plan 2D, solution, aides, paramètres, chauffage, nouveau logement).
  • data/notifiers.dart centralise les ValueNotifier : page courante, historique, logement/étage sélectionnés, mode sombre.

Couche données

  • utils/autres/bdd_manager.dart gère la base SQLite via un script d'amorçage (assets/createBDD.sql), la seed minimale et l'import des données depuis l'API ThermoNova (fetchAPI).
  • Les modèles métiers (Housing, Heater, Supplier, SocialAssistance...) sont définis dans ce même fichier.

Plans et GeoJSON

  • Les plans sont stockés en GeoJSON (utils/geojson/*), convertis en matrices pour la simulation et affichés via widgets/room_painter.dart.
  • L'édition se fait dans views/pages/edit_house_plan.dart avec sauvegarde dans saves/housing_<id>.json.

Les sections suivantes détaillent chacune de ces parties.