Fiche 01.06 — Les modifiers SwiftUI en profondeur
Objectif
Comprendre ce qu’est un modifier SwiftUI, pourquoi l’ordre des modifiers est important, et comment les utiliser proprement pour construire une interface lisible.
1. L’idée à comprendre
En SwiftUI, tu pars d’une vue simple, puis tu lui appliques des modifiers.
Exemple :
Ici :
Text("Bonjour")crée une vue texte ;.font(.title)modifie la police ;.foregroundStyle(.blue)modifie la couleur ;.padding()ajoute de l’espace autour.
Un modifier ne modifie pas exactement la vue “en place” comme en UIKit. Il retourne une nouvelle vue transformée.
Tu peux le retenir comme ça :
2. Code minimal
3. L’ordre des modifiers compte
L’ordre des modifiers change le résultat visuel.
Exemple 1 :
Ici, le fond jaune est appliqué après le padding.
Résultat : le jaune couvre le texte + l’espace autour.
Exemple 2 :
Ici, le fond jaune est appliqué avant le padding.
Résultat : le jaune couvre seulement le texte, puis l’espace est ajouté autour.
À retenir :
4. Exemple important : bouton plein largeur
Version correcte :
Si tu mets .frame(maxWidth: .infinity) trop tard, le fond risque de ne pas prendre toute la largeur attendue.
Exemple moins adapté :
Ici, le texte prend toute la largeur après que le fond a déjà été appliqué. Le fond bleu peut donc rester seulement autour du texte.
5. Modifiers de texte
Les modifiers les plus courants pour du texte :
Exemple réaliste :
6. Modifiers d’espace
Les modifiers les plus utiles pour gérer l’espace :
7. Modifiers de fond et de forme
Pour créer des cards, boutons ou blocs visuels :
Autre exemple avec bordure :
Différence importante :
.background(...)met quelque chose derrière la vue ;.overlay(...)met quelque chose par-dessus la vue ;.clipShape(...)découpe la forme visible.
8. background vs overlay
background
Le jaune est derrière le texte.
overlay
La bordure bleue est dessinée par-dessus la zone de la vue.
Les deux ensemble
Ici, tu as :
- un fond ;
- une bordure ;
- une forme arrondie.
9. Modifier l’interaction
Certains modifiers ajoutent du comportement.
Ces modifiers seront vus plus en détail dans les fiches sur le cycle de vie, l’état et l’asynchrone.
10. Modifiers conditionnels simples
Tu peux modifier l’apparence selon un état.
Ici, le texte, le fond et la couleur changent selon isActive.
11. Créer un modifier réutilisable
Si tu répètes souvent le même style, tu peux créer un ViewModifier.
Utilisation :
Tu peux rendre ça plus agréable avec une extension :
Puis :
C’est utile pour un design system simple.
12. Exemple réaliste : card réutilisable
Utilisation :
13. Points à connaître
Évite les chaînes de modifiers trop longues dans une grosse vue
Si un style devient trop long ou répété, crée :
- un composant réutilisable ;
- un
ViewModifier; - une extension de
View.
foregroundStyle est plus moderne que foregroundColor
Tu peux encore voir :
Mais tu peux préférer :
foregroundStyle est plus flexible, notamment pour les styles avancés.
Un modifier peut changer la taille prise par une vue
Par exemple :
change la place que la vue demande à son parent.
Alors que :
change seulement son apparence.
Résumé
À retenir :
- un modifier transforme une vue et retourne une nouvelle vue ;
- les modifiers sont appliqués dans l’ordre où ils sont écrits ;
- l’ordre entre
padding,background,frameetclipShapeest très important ; backgroundajoute quelque chose derrière ;overlayajoute quelque chose au-dessus ;framecontrôle l’espace occupé ;- les modifiers peuvent aussi ajouter du comportement avec
onAppear,taskouonTapGesture; - si un style se répète, crée un composant ou un
ViewModifierréutilisable.