L’interface est localisée ; les présentations et documents des Skills sont traduits automatiquement par IA dans votre langue. Le code, les commandes, chemins et termes techniques restent en version originale, et le document de l’auteur fait foi.
Explorer les Skills
Productivité · SKILL.md

ios-state-management

ios-state-management

Implement reactive state with Combine, Observation framework, and UDF patterns. Use when implementing state management with Combine, @Observable, or reactive patterns in iOS.

Independent GitHub snapshot · Automated classification · Original documentation governs

Documentation de la Skill

GitHub

name: ios-state-management description: Implement reactive state with Combine, Observation framework, and UDF patterns. Use when implementing state management with Combine, @Observable, or reactive patterns in iOS. metadata: triggers: files: - '**/*.swift' keywords: - Observable - "@Published" - PassthroughSubject - "@Observable" - "@Namespace"

iOS State Management

Priority: P0 (CRITICAL)

Implementation Workflow

  1. Choose observation approach — Use @Observable (iOS 17+) for modern SwiftUI; Combine with @Published for UIKit or broader compatibility.
  2. Expose state clearly — Use UDF pattern: ViewModel exposes Input enum (events) and Output struct (state).
  3. Manage subscriptions — Store Combine subscriptions in Set<AnyCancellable> with .store(in: &cancellables).
  4. Dispatch to main thread — Use @MainActor or .receive(on: DispatchQueue.main) for UI updates.
  5. Use exhaustive ViewState — Prefer single ViewState enum (.loading, .success(data), .error(failure)).

See Combine and Observation framework examples

Anti-Patterns

  • No Uncleared Subscriptions: Always use .store(in: &cancellables)
  • No Background UI Updates: Use .receive(on: .main) or @MainActor
  • No Manual objectWillChange.send(): Use @Published or @Observable instead

References

Skills enregistrées