0Pricing
SwiftUI Academy · Leçon

É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

  1. Décoder du JSON avec Codable
  2. Appeler des API avec URLSession
  3. Le modificateur .task
  4. États de chargement et d’erreur
← Retour à SwiftUI Academy