0Pricing
Swift Academy · Lektion

Single Source of Truth und unidirektionaler Datenfluss

Entwerfen Sie SwiftUI-Apps mit einem maßgeblichen Zustandsmodell.

Single Source of Truth und unidirektionaler Datenfluss ist eine kostenlose Swift 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 Swift Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Swift Academy-Kurs umfasst insgesamt 4 Lektionen.

Willkommen

Unidirektionaler Datenfluss bedeutet, dass der Zustand im View-Baum nach unten und Ereignisse nach oben fließen. Eine einzige maßgebliche Wahrheitsquelle verhindert Inkonsistenzen.

Das Prinzip

``` State → View → Event → State mutation → View re-renders ``` Views sind reine Funktionen des Zustands. Sie entscheiden nicht, wie der Zustand aussieht – sie zeigen ihn nur an und erzeugen Ereignisse.

Modellgesteuerte UI

```swift struct AppState { var count = 0; var filter: Filter = .all } struct AppView: View { @State var state = AppState() var body: some View { CounterView(state: state, onIncrement: { state.count += 1 }) } } ```

Doppelte Zustände vermeiden

```swift // ❌ Duplicate state — can drift out of sync: @State var isLoading = false @ObservedObject var viewModel: ViewModel // also has isLoading // ✓ Single source: @ObservedObject var viewModel: ViewModel // owns all state ```

Muster für Aktionen und Ereignisse

```swift enum CounterAction { case increment, decrement, reset } func reduce(state: inout AppState, action: CounterAction) { switch action { case .increment: state.count += 1 case .decrement: state.count -= 1 case .reset: state.count = 0 } } ```

TCA (The Composable Architecture)

The Composable Architecture (Open Source) formalisiert dieses Muster in Swift mit Reducern, Effects und Stores – ähnlich wie Redux in React.

Konflikte durch bidirektionale Bindungen vermeiden

```swift // ✓ Clear ownership: parent owns, child observes: struct Parent: View { @State private var text = "" var body: some View { Child(text: $text) } } struct Child: View { @Binding var text: String var body: some View { TextField("", text: $text) } } ```

Änderungen nach oben weitergeben

Verwenden Sie Closures (Callbacks), um Ereignisse nach oben weiterzugeben: ```swift struct Child: View { var onDelete: () -> Void var body: some View { Button("Delete", action: onDelete) } } ```

Unidirektionalen Code testen

Eine Kombination aus reinem Zustand und reinem Reducer lässt sich direkt testen: ```swift var state = AppState() reduce(state: &state, action: .increment) XCTAssertEqual(state.count, 1) ```

Vorteile

• Vorhersehbar: derselbe Zustand → dieselbe UI • Einfach zu debuggen: Protokollieren Sie jede Aktion und Zustandsänderung • Testbar: Für Logiktests ist keine UI erforderlich • Zeitreise-Debugging: Zustandsverlauf erneut abspielen

Kurzer Test

Was löst bei einem unidirektionalen Datenfluss eine Zustandsänderung aus?

Zusammenfassung

Die wichtigsten Punkte: • Der Zustand fließt nach unten, Ereignisse fließen nach oben • Eine einzige Wahrheitsquelle – keine doppelten Zustände • Verwenden Sie Aktionen und Reducer für testbare Logik zur Zustandsänderung • Callbacks geben Ereignisse vom untergeordneten View an den übergeordneten View weiter • Reiner Zustand + reiner Reducer = einfache Unit-Tests Kurs abgeschlossen! Als Nächstes: Combine Framework.

Häufig gestellte Fragen

Ist die Lektion „Single Source of Truth und unidirektionaler Datenfluss“ kostenlos?

Ja — der vollständige Text von „Single Source of Truth und unidirektionaler Datenfluss“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Swift Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Swift Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Single Source of Truth und unidirektionaler Datenfluss“?

Entwerfen Sie SwiftUI-Apps mit einem maßgeblichen Zustandsmodell. Du übst Swift 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 Swift Academy zu starten?

Keine Vorkenntnisse erforderlich. Swift 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 „Single Source of Truth und unidirektionaler Datenfluss“?

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 Swift Academy-Lektion Code schreiben und ausführen?

Ja. Jede Swift 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

  1. @Binding: Zwei-Wege-Datenfluss
  2. @ObservableObject und @StateObject
  3. @EnvironmentObject für gemeinsam genutzten Zustand
  4. Single Source of Truth und unidirektionaler Datenfluss
← Zurück zu Swift Academy