Maxiwere45 8608fc023c docs: sync ARCHITECTURE and README with actual codebase
Add missing providers (locale, theme, genFilter, caughtCount), all 6
pages, full widget inventory, core/l10n layers, and game mechanics
(hints, skips, shiny, bonuses, bilingual input, gen filter).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-25 21:58:37 +02:00
2026-06-23 14:26:59 +02:00
2026-06-23 14:39:16 +02:00
2026-06-23 14:26:59 +02:00
2026-03-17 14:57:39 +01:00
2026-06-23 14:26:59 +02:00
2026-02-02 15:01:02 +01:00
2026-01-16 14:50:38 +01:00
2026-03-17 14:57:39 +01:00
2026-01-16 13:45:38 +00:00
2026-06-23 12:22:37 +02:00

Pokéguess

Devine le Pokémon à partir de sa silhouette !

Application mobile Flutter développée dans le cadre du cours DEV MOBILE (Ynov). À l'origine basée sur l'exemple de pokédex du bootcamp, le projet est devenu un jeu complet « Who's that Pokémon ? » adossé à un pokédex.

Fonctionnalités

  • Jeu de devinette : une silhouette de Pokémon à identifier, avec un système de vies, d'indices et de passes (skips), des Pokémon shiny (bonus de points), un score courant et un meilleur score persistant.
  • Filtre par génération : on choisit les générations (I à IX) dont les Pokémon peuvent tomber pendant le jeu.
  • Pokédex : liste nationale des Pokémon avec filtre ALL / CAUGHT et compteur de progression (découverts / total).
  • Fiche détaillée : statistiques de base, description, types, bascule normal/shiny.
  • Page Système : statistiques globales (attrapés, vus, complétion, meilleur score) et choix de la palette de couleurs de l'app.
  • Offline-first : les données sont mises en cache localement (SQLite) ; l'app reste utilisable hors-ligne une fois la synchronisation initiale faite.

Architecture

Le projet suit une Clean Architecture allégée en trois couches, avec Riverpod pour la gestion d'état :

lib/
├── core/          # constantes, logger (Dart pur)
├── domain/        # entités, interface de repository, moteur de jeu (Dart pur, testé)
├── data/          # DTO de parsing, datasources SQLite/HTTP, implémentation du repository
└── presentation/  # providers Riverpod, pages et widgets (chacun < 150 lignes)

La règle de dépendance pointe vers l'intérieur : domain ne dépend de rien, data et presentation dépendent de domain. Détails dans docs/ARCHITECTURE.md.

Stack technique

Installation

git clone https://gitea.losvernos.com/guillaumev/quel-est-ce-pokemon.git
cd quel-est-ce-pokemon
flutter pub get

Puis lancer l'application sur le device de votre choix (téléphone, émulateur ou navigateur) :

flutter run

Tests

flutter test

Les tests couvrent le moteur de jeu (GameEngine), le parsing (PokemonDto) et le repository.

Ressources utilisées

  • API Tyradex — données des Pokémon (français)
  • Sprites officiels via le dépôt TyraDex/sprites (remplacer <id> par le numéro du Pokémon) :
    • normal : .../sprites/<id>/regular.png
    • shiny : .../sprites/<id>/shiny.png
  • Cris des Pokémon
Description
Projet de développement mobile flutter
Readme AGPL-3.0 1.5 MiB
Languages
Dart 44%
HTML 40.8%
C++ 7.3%
CMake 5.8%
Ruby 0.9%
Other 1.1%