Skip to content

3.0.0

Choose a tag to compare

@cursor cursor released this 17 Jul 20:40
· 1 commit to main since this release
2cb6a82

AppState 3.0.0

Swift 6 library release built around Apple's Observation framework, with first-class SwiftData support and cross-platform Observation delivery.

Highlights

  • Observation-basedApplication uses @Observable. Setters call notifyChange() directly on all platforms (no Apple-only Combine cache bridge). withObservationTracking works without SwiftUI on Apple, Linux, and Windows.
  • Swift 6 — language mode .v6, ExistentialAny, CI warnings-as-errors (APPSTATE_STRICT).
  • Platform floors — iOS 17 / macOS 14 / tvOS 17 / watchOS 10 / visionOS 1. Linux & Windows for the non-Apple feature set. WebAssembly unblocked via canImport guards.
  • SwiftData (optional)ModelState / @ModelState with shared ModelContainer dependency; lenient mutators plus a throwing strict facade.
  • Correctness fixes — SyncState encodes before local fallback commit; Keychain is checked-Sendable with hardened locking.

Dependencies

  • Requires Cache 2.1.3+ (WASM canImport(Combine) + Linux collection-cast fix).

Migrating from 2.x

See the Upgrade to 3.0 guide.

.package(url: "https://github.com/0xLeif/AppState.git", from: "3.0.0")

Apple-only surfaces

Keychain (SecureState), iCloud (SyncState), and SwiftData (ModelState) remain Apple-platform features.

Verification

  • macOS / Ubuntu / Windows / DocC CI green on main
  • CrossPlatformObservationTests pass on Linux CI