Fiche 03.01 — Créer des composants réutilisables en SwiftUI
Objectif
Comprendre comment découper une interface SwiftUI en petites vues réutilisables, pourquoi c’est important, et comment créer des composants propres avec des paramètres.
1. L’idée à comprendre
En SwiftUI, une interface est composée de vues.
Une vue peut représenter :
- un écran complet ;
- une section d’écran ;
- une cellule ;
- un bouton ;
- un champ de texte ;
- une card ;
- un message d’erreur ;
- un loader.
Quand une partie d’interface devient trop longue, répétée ou difficile à lire, tu peux la transformer en composant réutilisable.
Exemple :
Le but est d’éviter d’avoir un seul énorme body impossible à maintenir.
2. Exemple sans composant
Ce code fonctionne.
Mais si l’écran grossit, il deviendra vite difficile à lire.
3. Même exemple découpé en composants
Composant header :
Composant bouton :
Le résultat visuel est le même, mais le code est plus clair.
4. Créer un composant avec des paramètres
Un composant SwiftUI reçoit souvent des valeurs avec let.
Utilisation :
Ici, le composant est réutilisable parce que son texte et sa couleur sont configurables.
5. Composant avec une action
Si ton composant déclenche une action, tu peux lui passer une closure.
Utilisation :
La vue PrimaryButton ne décide pas ce qui se passe au clic.
Elle reçoit l’action depuis l’extérieur.
6. Composant avec état externe modifiable
Si le composant doit modifier une valeur du parent, tu peux utiliser @Binding.
Utilisation :
À retenir :
7. Composant avec contenu personnalisé
Parfois, tu veux créer un composant qui contient une zone personnalisable.
Exemple : une card réutilisable.
Utilisation :
@ViewBuilder permet de passer plusieurs vues comme contenu.
8. Exemple réaliste : ligne de réglage
Utilisation :
Ce composant peut être réutilisé dans plusieurs écrans de réglages.
9. Exemple réaliste : état vide réutilisable
Utilisation :
10. Où ranger les composants ?
Pour un petit projet :
Pour un projet organisé par features :
Règle simple :
11. Preview d’un composant
Un bon composant doit être facile à prévisualiser.
Preview d’un bouton :
Preview d’un état vide :
12. Quand créer un composant ?
Crée un composant quand :
- un morceau de vue devient long ;
- un bloc est répété plusieurs fois ;
- tu veux donner un nom clair à une partie de l’interface ;
- tu veux prévisualiser une partie isolée ;
- tu veux réutiliser un style ;
- tu veux simplifier le
bodyprincipal.
Exemples :
13. Quand ne pas créer un composant ?
Ne découpe pas trop vite si ça rend le code plus compliqué.
Exemple inutile :
Si une vue est utilisée une seule fois et fait une seule ligne, elle n’a pas forcément besoin d’être extraite.
Le but est de rendre le code plus clair, pas de créer 50 fichiers inutiles.
14. Points à connaître
Une View peut être minuscule
Un composant SwiftUI peut être très petit.
Ce n’est pas un problème si ça améliore la lisibilité.
Utilise let pour les données en lecture seule
Si la vue ne modifie pas la donnée, un let suffit.
Utilise une closure pour les actions
C’est très courant pour les boutons et cellules cliquables.
Utilise @Binding pour modifier une valeur du parent
C’est courant pour les toggles, favoris, champs de texte custom, etc.
Résumé
À retenir :
- une app SwiftUI est composée de petites vues ;
- un composant est simplement une
Viewréutilisable ; - utilise
letpour passer des données en lecture seule ; - utilise une closure pour déclencher une action ;
- utilise
@Bindingpour modifier une valeur du parent ; - utilise
@ViewBuilderpour créer des composants avec contenu personnalisable ; - range les composants partagés dans
Shared/Components; - range les composants spécifiques dans leur feature ;
- un bon composant doit être facile à prévisualiser.