Lade- und Fehlerzustände
Zeigen Sie Ladeindikatoren an und behandeln Sie Fehler elegant.
Lade- und Fehlerzustände ist eine kostenlose SwiftUI Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des SwiftUI Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der SwiftUI Academy-Kurs umfasst insgesamt 4 Lektionen.
Teile dieser Lektion wurden noch nicht übersetzt und werden auf Englisch angezeigt.
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. 🎯
Häufig gestellte Fragen
Ist die Lektion „Lade- und Fehlerzustände“ kostenlos?
Ja — der vollständige Text von „Lade- und Fehlerzustände“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des SwiftUI Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der SwiftUI Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Lade- und Fehlerzustände“?
Zeigen Sie Ladeindikatoren an und behandeln Sie Fehler elegant. Du übst SwiftUI Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um SwiftUI Academy zu starten?
Keine Vorkenntnisse erforderlich. SwiftUI Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.
Wie lange dauert die Lektion „Lade- und Fehlerzustände“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser SwiftUI Academy-Lektion Code schreiben und ausführen?
Ja. Jede SwiftUI Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- JSON mit Codable dekodieren
- APIs mit URLSession aufrufen
- Der .task-Modifikator
- Lade- und Fehlerzustände