0%
Convertisseur d'unités — Chapitre 57

Chapitre 57 — Convertisseur d'unités

Partie 1C — Huit mini-projets · Chapitre 57 sur 62 · 12 h

Chapitre 57 — Convertisseur d'unités

Niveau : intermédiaire Durée estimée : 12 h Pré-requis : chapitre 56 — Projet 2 : la calculatrice Ce que vous saurez faire à la fin : construire une application complète pilotée par un formulaire, séparer proprement une logique métier testable de son interface, et écrire les tests unitaires qui prouvent que vos calculs sont justes.


57.0 — Objectifs du chapitre

À la fin de ce chapitre, vous serez capable de :

  • modéliser un domaine métier avec un enum enrichi et une classe de valeur ;
  • expliquer ce qu'est une unité pivot et pourquoi elle divise le travail par cent ;
  • démontrer pourquoi la température ne peut pas se convertir avec un simple facteur ;
  • généraliser un modèle « facteur » en modèle « couple de fonctions » ;
  • écrire une fonction de conversion pure, sans aucune dépendance à Flutter ;
  • brancher un TextField sur un TextEditingController et réagir à chaque frappe ;
  • restreindre la saisie aux caractères numériques avec inputFormatters ;
  • distinguer ce que filtre un inputFormatter de ce que valide double.tryParse ;
  • gérer la virgule décimale française et les espaces de groupement ;
  • construire deux DropdownButton<Unite> synchronisés ;
  • filtrer la liste des unités selon la catégorie choisie avec where ;
  • inverser l'unité source et l'unité cible en un seul appel à setState ;
  • convertir en temps réel via onChanged sans bouton « Calculer » ;
  • formater un résultat lisible avec NumberFormat du paquet intl ;
  • choisir un nombre de décimales adapté à l'ordre de grandeur du résultat ;
  • basculer en notation scientifique pour les nombres extrêmes ;
  • organiser six catégories en onglets avec TabController et TabBarView ;
  • conserver l'état de chaque onglet avec AutomaticKeepAliveClientMixin ;
  • tenir un historique des conversions validées ;
  • persister le dernier choix de l'utilisateur avec shared_preferences ;
  • écrire une suite de tests unitaires qui vérifie chaque famille de conversion.

Commentaires

Les commentaires sont alimentés par GitHub Discussions

Connectez-vous avec GitHub pour participer à la discussion

Lien copié !