SwiftUI Academy · Lekcja

Stany wczytywania i błędów

Wyświetlaj wskaźniki wczytywania i elegancko obsługuj błędy

Lekcja 4 z 413 kroki

Stany wczytywania i błędów to bezpłatna lekcja SwiftUI Academy na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej SwiftUI Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs SwiftUI Academy zawiera 4 lekcji w sumie.

Części tej lekcji nie zostały jeszcze przetłumaczone i są wyświetlane po angielsku.

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. 🎯

Bezpłatny start

Ucz się Swift dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
30
Lekcje
120

Często zadawane pytania

Czy lekcja „Stany wczytywania i błędów” jest bezpłatna?

Tak — pełny tekst „Stany wczytywania i błędów” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu SwiftUI Academy, przejdź na CoddyKit PRO. Kurs SwiftUI Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Stany wczytywania i błędów”?

Wyświetlaj wskaźniki wczytywania i elegancko obsługuj błędy Ćwiczysz SwiftUI Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć SwiftUI Academy?

Nie wymagamy żadnego doświadczenia. SwiftUI Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.

Ile czasu zajmuje lekcja „Stany wczytywania i błędów”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji SwiftUI Academy?

Tak. Każda lekcja SwiftUI Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Dekodowanie JSON za pomocą Codable
  2. Wywoływanie API za pomocą URLSession
  3. Modyfikator .task
  4. Stany wczytywania i błędów
← Powrót do SwiftUI Academy