Widget, Element, RenderObject
Flutter maintient trois arbres : les Widgets (descriptions immuables et jetables), les Elements (instances vivantes qui font le lien), les RenderObjects (qui mesurent et dessinent). On travaille avec les widgets ; Flutter gère le reste.
Le BuildContext
Le context reçu dans build() est la position du widget dans l'arbre. Il sert à remonter l'arbre pour trouver des données (thème, navigateur, providers).
Les keys
Une Key aide Flutter à identifier un widget quand une liste change (réordonnancement, suppression). En général optionnelles ; utiles pour préserver l'état d'éléments dans une liste dynamique.
MediaQuery & Theme
Via le context : MediaQuery.of(context).size donne la taille de l'écran (pour un design responsive) ; Theme.of(context) donne les couleurs/typo du thème.
final largeur = MediaQuery.of(context).size.width; final couleur = Theme.of(context).colorScheme.primary;
Rends la liste des campagnes adaptable : une colonne sur téléphone, une grille sur tablette (via MediaQuery). Utilise Theme.of(context) pour la couleur de la jauge, plutôt que des couleurs en dur.
- Trois arbres : Widget (jetable) / Element (vivant) / RenderObject (dessin).
- Le
BuildContextlocalise le widget et donne accès à l'arbre. MediaQuery(taille écran) etTheme.of(thème) via le context.