États de chargement et d’erreur
Affichez des indicateurs de chargement et gérez les échecs avec élégance.
États de chargement et d’erreur est une leçon SwiftUI Academy gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage SwiftUI Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours SwiftUI Academy comprend 4 leçons au total.
Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.
Every Fetch Has Phases
A real request moves through states: loading, success, and failure. Showing each one makes your app feel trustworthy. 🔄
Modeling State with an Enum
An enum captures each phase cleanly. The view then switches on it to decide exactly what to display.
enum Phase { case loading, loaded([User]), failed(String) }Showing a Spinner
While loading, show a ProgressView. This native spinner reassures users that something is happening behind the scenes.
ProgressView("Loading...")Switching on the Phase
Use a switch in your body to render a spinner, the data, or an error view based on the current phase.
switch phase {
case .loading: ProgressView()
case .failed(let msg): Text(msg)
case .loaded(let users): List(users)
}Catching the Error
Wrap the fetch in do/catch and move to the failed phase on error, storing a friendly message for the screen.
catch { phase = .failed("Could not load") }Friendly Error Messages
Avoid raw error text. Show a clear sentence the user understands, like "Check your connection and try again."
Offering a Retry
On failure, add a retry button that runs the fetch again. Letting users recover beats a dead-end error screen.
Button("Retry") { Task { await load() } }The Empty State
Success with no data deserves its own empty view, like "No results yet", so the screen never looks broken.
Setting Loading First
Move to the loading phase before awaiting. That instantly shows the spinner so the screen never feels frozen.
phase = .loading
phase = .loaded(try await loadUsers())Avoiding Flicker
For very fast responses, a tiny delay before hiding the spinner prevents a jarring flash of loading UI.
Wiring It to .task
Kick off the whole flow from .task, which sets loading, fetches, and lands on loaded or failed automatically.
.task { await load() }Quick Check
Quick check on handling request phases.
Recap: States
You now model fetches as loading, loaded, and failed, show a spinner and friendly errors with retry, and drive it all from .task. 🎯
Questions Fréquemment Posées
La leçon « États de chargement et d’erreur » est-elle gratuite ?
Oui — le texte complet de « États de chargement et d’erreur » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours SwiftUI Academy, passe à CoddyKit PRO. Le cours SwiftUI Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « États de chargement et d’erreur » ?
Affichez des indicateurs de chargement et gérez les échecs avec élégance. Tu pratiques SwiftUI Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer SwiftUI Academy ?
Aucune expérience préalable n'est requise. SwiftUI Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.
Combien de temps prend la leçon « États de chargement et d’erreur » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon SwiftUI Academy ?
Oui. Chaque leçon SwiftUI Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Décoder du JSON avec Codable
- Appeler des API avec URLSession
- Le modificateur .task
- États de chargement et d’erreur