0Pricing
Swift Academy · Leçon

Source unique de vérité et flux unidirectionnel

Concevoir des applications SwiftUI avec un modèle d’état faisant autorité.

Source unique de vérité et flux unidirectionnel est une leçon Swift 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 Swift Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Swift Academy comprend 4 leçons au total.

Bienvenue

Un flux de données unidirectionnel signifie que l’état descend dans l’arbre des vues et que les événements remontent. Une source de vérité unique élimine les incohérences.

Le principe

``` State → View → Event → State mutation → View re-renders ``` Les vues sont des fonctions pures de l’état. Elles ne décident pas de la valeur de l’état : elles l’affichent uniquement et émettent des événements.

Interface utilisateur pilotée par le modèle

```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 }) } } ```

Éviter les doublons d’état

```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 ```

Modèle des actions et des événements

```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 (architecture composable)

L’architecture composable (à code source ouvert) formalise ce modèle en Swift avec des réducteurs, des effets et des magasins — de façon similaire à Redux dans React.

Éviter les conflits bidirectionnels

```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) } } ```

Propager les changements vers le haut

Utilisez des fermetures (rappels) pour propager les événements vers le haut : ```swift struct Child: View { var onDelete: () -> Void var body: some View { Button("Delete", action: onDelete) } } ```

Tester du code unidirectionnel

Un état pur associé à un réducteur pur se teste trivialement : ```swift var state = AppState() reduce(state: &state, action: .increment) XCTAssertEqual(state.count, 1) ```

Avantages

• Prévisible : même état → même interface utilisateur • Facile à déboguer : journalisez chaque action et chaque changement d’état • Testable : aucune interface utilisateur requise pour les tests de logique • Débogage par retour dans le temps : rejouez l’historique de l’état

Vérification rapide

Qu’est-ce qui déclenche une mutation de l’état dans un flux de données unidirectionnel ?

Récapitulatif

Points essentiels : • L’état descend ; les événements remontent • Une source de vérité unique — aucun doublon d’état • Utilisez des actions et des réducteurs pour une logique de mutation testable • Les rappels propagent les événements de l’enfant vers le parent • État pur + réducteur = tests unitaires faciles Cours terminé ! Ensuite : la bibliothèque Combine.

Questions Fréquemment Posées

La leçon « Source unique de vérité et flux unidirectionnel » est-elle gratuite ?

Oui — le texte complet de « Source unique de vérité et flux unidirectionnel » 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 Swift Academy, passe à CoddyKit PRO. Le cours Swift Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Source unique de vérité et flux unidirectionnel » ?

Concevoir des applications SwiftUI avec un modèle d’état faisant autorité. Tu pratiques Swift 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 Swift Academy ?

Aucune expérience préalable n'est requise. Swift 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 « Source unique de vérité et flux unidirectionnel » ?

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 Swift Academy ?

Oui. Chaque leçon Swift 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. @Binding : flux de données bidirectionnel
  2. @ObservableObject et @StateObject
  3. @EnvironmentObject pour un état partagé
  4. Source unique de vérité et flux unidirectionnel
← Retour à Swift Academy