ajout des commentaire entete de fichier
This commit is contained in:
23
CLAUDE.md
23
CLAUDE.md
@@ -97,3 +97,26 @@ Standard Flutter project structure:
|
|||||||
- Platform directories: `android/`, `ios/`, `linux/`, `macos/`, `web/`, `windows/`
|
- Platform directories: `android/`, `ios/`, `linux/`, `macos/`, `web/`, `windows/`
|
||||||
|
|
||||||
The app uses `flutter_lints` for static analysis (configured in `analysis_options.yaml`).
|
The app uses `flutter_lints` for static analysis (configured in `analysis_options.yaml`).
|
||||||
|
|
||||||
|
|
||||||
|
# description des pages
|
||||||
|
|
||||||
|
En-têtes ajoutés
|
||||||
|
Fichier En-tête
|
||||||
|
home_screen.dart Écran d'accueil - Dashboard principal avec stats et navigation
|
||||||
|
stats_card.dart Widget carte réutilisable pour afficher une statistique
|
||||||
|
capture_screen.dart Écran de capture - Sélection type cible et source image
|
||||||
|
target_type_selector.dart Sélecteur de type de cible (concentrique/silhouette)
|
||||||
|
image_source_button.dart Bouton pour choisir caméra ou galerie
|
||||||
|
analysis_screen.dart Écran principal d'analyse avec overlay et scores
|
||||||
|
analysis_provider.dart Gestionnaire d'état (ChangeNotifier) pour l'analyse
|
||||||
|
target_overlay.dart Overlay visuel avec anneaux, impacts et groupement
|
||||||
|
target_calibration.dart Outil de calibration du centre, rayon et anneaux
|
||||||
|
score_card.dart Carte d'affichage des scores et distribution
|
||||||
|
grouping_stats.dart Statistiques de groupement avec indicateur qualité
|
||||||
|
history_screen.dart Écran historique avec liste et graphique d'évolution
|
||||||
|
session_detail_screen.dart Détail d'une session avec visualisation complète
|
||||||
|
session_list_item.dart Item de liste représentant une session
|
||||||
|
history_chart.dart Graphique d'évolution des 10 dernières sessions
|
||||||
|
statistics_screen.dart Écran statistiques avec filtrage par période
|
||||||
|
heat_map_widget.dart Heat map avec gradient bleu→rouge
|
||||||
|
|||||||
@@ -1,3 +1,10 @@
|
|||||||
|
/// Gestionnaire d'état pour l'analyse des cibles (ChangeNotifier).
|
||||||
|
///
|
||||||
|
/// Gère le workflow complet d'analyse : chargement d'image, détection de cible,
|
||||||
|
/// gestion des impacts (manuels et automatiques), calcul des scores,
|
||||||
|
/// analyse de groupement et sauvegarde des sessions.
|
||||||
|
library;
|
||||||
|
|
||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
import 'dart:ui' as ui;
|
import 'dart:ui' as ui;
|
||||||
import 'package:flutter/foundation.dart';
|
import 'package:flutter/foundation.dart';
|
||||||
|
|||||||
@@ -1,3 +1,10 @@
|
|||||||
|
/// Écran principal d'analyse - Interface centrale de traitement des cibles.
|
||||||
|
///
|
||||||
|
/// Affiche la cible avec overlay des anneaux et impacts détectés.
|
||||||
|
/// Permet la calibration, l'ajout manuel d'impacts, la détection automatique,
|
||||||
|
/// et le calcul des scores et statistiques de groupement.
|
||||||
|
library;
|
||||||
|
|
||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
/// Statistiques de groupement des impacts.
|
||||||
|
///
|
||||||
|
/// Affiche le diamètre de groupement, l'écart-type et le décalage par rapport
|
||||||
|
/// au centre de la cible. Inclut un indicateur de qualité (Excellent, Bon, Moyen, Faible).
|
||||||
|
library;
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import '../../../core/constants/app_constants.dart';
|
import '../../../core/constants/app_constants.dart';
|
||||||
import '../../../core/theme/app_theme.dart';
|
import '../../../core/theme/app_theme.dart';
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
/// Carte d'affichage des scores.
|
||||||
|
///
|
||||||
|
/// Affiche le score total, le nombre d'impacts, la moyenne et le pourcentage.
|
||||||
|
/// Inclut la distribution des scores par valeur (1-10 pour cibles concentriques).
|
||||||
|
library;
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import '../../../core/constants/app_constants.dart';
|
import '../../../core/constants/app_constants.dart';
|
||||||
import '../../../core/theme/app_theme.dart';
|
import '../../../core/theme/app_theme.dart';
|
||||||
|
|||||||
@@ -1,3 +1,10 @@
|
|||||||
|
/// Outil de calibration de la cible.
|
||||||
|
///
|
||||||
|
/// Permet l'ajustement interactif du centre, du rayon global et du nombre d'anneaux.
|
||||||
|
/// Supporte la calibration individuelle de chaque anneau et le redimensionnement
|
||||||
|
/// proportionnel via un slider global.
|
||||||
|
library;
|
||||||
|
|
||||||
import 'dart:math' as math;
|
import 'dart:math' as math;
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import '../../../core/theme/app_theme.dart';
|
import '../../../core/theme/app_theme.dart';
|
||||||
|
|||||||
@@ -1,3 +1,10 @@
|
|||||||
|
/// Overlay visuel de la cible.
|
||||||
|
///
|
||||||
|
/// Dessine les anneaux de la cible, les impacts détectés, le cercle de groupement
|
||||||
|
/// et les impacts de référence. Gère les interactions tactiles pour l'ajout
|
||||||
|
/// d'impacts et la sélection d'impacts existants.
|
||||||
|
library;
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import '../../../core/theme/app_theme.dart';
|
import '../../../core/theme/app_theme.dart';
|
||||||
import '../../../data/models/shot.dart';
|
import '../../../data/models/shot.dart';
|
||||||
|
|||||||
@@ -1,3 +1,10 @@
|
|||||||
|
/// Écran de capture - Première étape du workflow d'analyse.
|
||||||
|
///
|
||||||
|
/// Permet de sélectionner le type de cible (concentrique ou silhouette)
|
||||||
|
/// et la source d'image (caméra ou galerie). Affiche un aperçu de l'image
|
||||||
|
/// sélectionnée avant de lancer l'analyse.
|
||||||
|
library;
|
||||||
|
|
||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:image_picker/image_picker.dart';
|
import 'package:image_picker/image_picker.dart';
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
/// Bouton de sélection de source d'image.
|
||||||
|
///
|
||||||
|
/// Bouton réutilisable pour choisir entre la caméra et la galerie
|
||||||
|
/// comme source d'image de la cible.
|
||||||
|
library;
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import '../../../core/constants/app_constants.dart';
|
import '../../../core/constants/app_constants.dart';
|
||||||
import '../../../core/theme/app_theme.dart';
|
import '../../../core/theme/app_theme.dart';
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
/// Sélecteur de type de cible.
|
||||||
|
///
|
||||||
|
/// Affiche les options de type de cible (concentrique ou silhouette)
|
||||||
|
/// sous forme de boutons sélectionnables.
|
||||||
|
library;
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import '../../../core/constants/app_constants.dart';
|
import '../../../core/constants/app_constants.dart';
|
||||||
import '../../../core/theme/app_theme.dart';
|
import '../../../core/theme/app_theme.dart';
|
||||||
|
|||||||
@@ -1,3 +1,10 @@
|
|||||||
|
/// Écran d'historique des sessions.
|
||||||
|
///
|
||||||
|
/// Affiche la liste des sessions passées avec filtrage par type de cible.
|
||||||
|
/// Inclut un graphique d'évolution des scores (10 dernières sessions)
|
||||||
|
/// et permet la navigation vers le détail de chaque session.
|
||||||
|
library;
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
|
|||||||
@@ -1,3 +1,10 @@
|
|||||||
|
/// Écran de détail d'une session.
|
||||||
|
///
|
||||||
|
/// Affiche la visualisation complète d'une session sauvegardée :
|
||||||
|
/// image de la cible avec overlay des impacts, scores recalculés,
|
||||||
|
/// statistiques de groupement et lien vers les statistiques détaillées.
|
||||||
|
library;
|
||||||
|
|
||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
/// Graphique d'évolution des scores.
|
||||||
|
///
|
||||||
|
/// Affiche un graphique linéaire montrant l'évolution des scores
|
||||||
|
/// sur les 10 dernières sessions. Utilise fl_chart pour le rendu.
|
||||||
|
library;
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:fl_chart/fl_chart.dart';
|
import 'package:fl_chart/fl_chart.dart';
|
||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
/// Item de liste représentant une session.
|
||||||
|
///
|
||||||
|
/// Affiche les informations clés d'une session (date, type de cible,
|
||||||
|
/// score, nombre de tirs) avec miniature de l'image et actions de suppression.
|
||||||
|
library;
|
||||||
|
|
||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
/// Écran d'accueil - Dashboard principal de l'application.
|
||||||
|
///
|
||||||
|
/// Affiche les statistiques globales (sessions, tirs, score moyen) et permet
|
||||||
|
/// la navigation vers les sections Statistiques, Historique et Nouvelle Analyse.
|
||||||
|
library;
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import '../../core/constants/app_constants.dart';
|
import '../../core/constants/app_constants.dart';
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
/// Widget carte réutilisable pour afficher une statistique.
|
||||||
|
///
|
||||||
|
/// Affiche une icône, un titre et une valeur avec une couleur personnalisable.
|
||||||
|
/// Utilisé sur l'écran d'accueil pour les statistiques rapides.
|
||||||
|
library;
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import '../../../core/constants/app_constants.dart';
|
import '../../../core/constants/app_constants.dart';
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,10 @@
|
|||||||
|
/// Écran des statistiques détaillées.
|
||||||
|
///
|
||||||
|
/// Affiche les métriques de performance avec filtrage par période
|
||||||
|
/// (session, semaine, mois, tout). Inclut heat map, précision,
|
||||||
|
/// écart-type et distribution régionale des tirs.
|
||||||
|
library;
|
||||||
|
|
||||||
import 'package:flutter/foundation.dart';
|
import 'package:flutter/foundation.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
|||||||
@@ -1,3 +1,10 @@
|
|||||||
|
/// Widget de visualisation heat map.
|
||||||
|
///
|
||||||
|
/// Affiche une carte de chaleur (brouillard) de la distribution des tirs
|
||||||
|
/// avec gradient bleu (froid/peu de tirs) à rouge (chaud/beaucoup de tirs).
|
||||||
|
/// Utilise un effet de brouillard radial pour un rendu fluide.
|
||||||
|
library;
|
||||||
|
|
||||||
import 'dart:math' as math;
|
import 'dart:math' as math;
|
||||||
import 'dart:ui' as ui;
|
import 'dart:ui' as ui;
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|||||||
Reference in New Issue
Block a user