Fiche 03.07 — Formulaires SwiftUI
Objectif
Comprendre comment créer des formulaires SwiftUI avec Form, TextField, SecureField, Toggle, Picker, DatePicker, Stepper et Slider.
Un formulaire sert à récupérer des informations utilisateur : connexion, inscription, profil, préférences, filtres, etc.
1. Formulaire simple avec Form
Form est pratique pour créer rapidement une interface de réglages ou de saisie.
Form donne automatiquement un style iOS proche des réglages système.
2. Form vs VStack custom
Tu peux créer un formulaire avec Form :
Ou avec une vue custom :
Form est mieux pour les écrans de réglages, profils, préférences ou formulaires classiques.
VStack custom est mieux quand tu veux un design précis : écran de login moderne, onboarding, formulaire très stylisé.
3. Champs de texte
Pour un email, pense souvent à :
4. Toggle
Utile pour les préférences, conditions d’utilisation, options de confidentialité, notifications, etc.
5. Picker
Picker fonctionne avec une valeur sélectionnée et des .tag(...).
6. DatePicker
Tu peux limiter les dates :
7. Stepper
Utile pour choisir une quantité, un nombre de participants, une durée, etc.
8. Slider
Utile pour des filtres ou des réglages progressifs.
9. Validation simple dans la vue
Ici, le bouton est désactivé tant que le formulaire est invalide.
10. Validation dans un ViewModel
Pour un vrai écran de login/register, la validation est souvent mieux dans un ViewModel.
Vue SwiftUI :
11. Quand valider dans la vue ou dans le ViewModel ?
Validation dans la vue : acceptable pour un petit formulaire simple, sans logique métier importante.
Validation dans le ViewModel : préférable pour login, inscription, profil, paiement, API, messages d’erreur, tests unitaires.
En général, dès que la validation devient importante ou testable, elle doit sortir de la vue.
Points à connaître
Form est pratique, mais son style est assez imposé par iOS. Pour un écran très personnalisé, utilise plutôt ScrollView + VStack.
Les valeurs du formulaire sont souvent stockées avec @State pour un écran simple, ou dans un ViewModel avec @StateObject pour un écran réel.
Un bouton de validation doit souvent être désactivé tant que le formulaire est invalide.
Résumé
Formsert à créer rapidement des formulaires iOS.TextField,SecureField,Toggle,Picker,DatePicker,StepperetSlidercouvrent la majorité des besoins.- Pour un petit formulaire,
@Statesuffit. - Pour un vrai écran métier, préfère un ViewModel.
- La validation peut désactiver le bouton tant que les champs sont invalides.