25caf6ddf896045b3bcf1d2a21d880ad6773b04e
Origine du problème (BoxConstraints forces an infinite width / RenderPhysicalShape) :
Hauteur non bornée dans le Positioned :
Lorsque la bulle d'aide était positionnée via Positioned(top: ..., bottom: null), Flutter transmettait une contrainte de hauteur infinie (maxHeight: double.infinity).
Le bouton ElevatedButton calcule son ombre et sa forme physique via RenderPhysicalShape en appelant constraints.biggest ; avec une dimension infinie, Flutter générait une contrainte invalide (BoxConstraints(w=Infinity, 50.0<=h<=Infinity)) et crashait le rendu (ce qui provoquait l'écran gris/noir).
Nids de Row imbriqués dans le pied de la carte d'étape.
Solutions apportées :
tutorial_overlay.dart
:
Hauteur maximale bornée : _buildTooltip calcule et transmet désormais la hauteur disponible réelle de l'écran (availableHeight) via ConstrainedBox(maxHeight: available).
Bouton moderne Material 3 : Remplacement par FilledButton pour le bouton d'action principale ("Suivant" / "C'est parti").
Structure simplifiée : Aplatissement de la barre inférieure avec un Row unique utilisant Spacer().
full_app_render_test.dart
:
Ajout d'un test d'intégration complet validant le démarrage de l'application et la navigation étape par étape du didacticiel.
Bully - Analyseur de Cible
Application Flutter multiplateforme pour l'analyse et le suivi de vos séances de tir.
Fonctionnalités Principales
- Capture et Analyse : Prenez une photo de votre cible et analysez vos impacts.
- Détection Automatique : Utilise des algorithmes pour détecter automatiquement les impacts de balle sur la cible.
- Calibration : Outils de calibration précis pour définir la taille et le centre de la cible, assurant des mesures exactes.
- Statistiques Détaillées :
- Calcul du score total.
- Analyse du groupement (H+L, diamètre moyen).
- Visualisation graphique de la dispersion.
- Historique : Sauvegardez vos sessions avec des notes et consultez votre progression au fil du temps.
- Interface Intuitive : Design moderne et fluide, avec un bouton de sauvegarde dynamique qui s'adapte à votre navigation.
Détails Techniques
- Framework : Flutter (Compatible Android, iOS, Windows, Linux, macOS).
- Base de Données : SQLite (via
sqfliteetsqflite_common_ffipour le support Desktop). - Graphiques :
fl_chartpour la visualisation des données. - Architecture : Provider pour la gestion d'état.
Installation
- Assurez-vous d'avoir Flutter installé.
- Clonez le dépôt.
- Installez les dépendances :
flutter pub get - Lancez l'application :
flutter run
Releases
8
Version v0.0.8
Latest
Languages
Dart
80%
TypeScript
8.9%
JavaScript
4.8%
C++
3.1%
CMake
2.4%
Other
0.7%