Skip to content

Releases: futuredapp/FuturedKit

Release 2.0.1

13 Apr 18:50
cfc434f

Choose a tag to compare

What's Changed

Full Changelog: 2.0.0...2.0.1

Release 2.0.0

03 Mar 15:12
646f9c8

Choose a tag to compare

FuturedKit 2.0.0

Swift 6.1 + Swift Observation

FuturedKit now targets Swift 6.1 and moves from Combine (ObservableObject) to Swift Observation (@Observable). All architecture protocols (ComponentModel, Coordinator) are
explicitly @MainActor-isolated.


Breaking Changes

Platform & tooling

  • Swift tools version bumped from 5.9 to 6.1
  • Minimum deployment targets raised: iOS 16 → 17, macOS 13 → 14, watchOS 9 → 10, tvOS 16 → 17

Observation migration

  • ComponentModel and Coordinator protocols now require AnyObject (was ObservableObject)
  • All @Published properties removed — conforming types must use @Observable macro
  • @StateObject@State, @ObservedObject → plain property, @EnvironmentObject@Environment
  • AppSceneDelegate conforms to Observable (was ObservableObject)

DataCache

  • Changed from actor to @Observable @MainActor final class
  • Model generic constraint is now Equatable & Sendable (was Equatable only)
  • populate(_:with:) — elements now require Identifiable & Equatable (was Equatable only); collection must be RangeReplaceableCollection & MutableCollection; merging is ID-based
    instead of index-based
  • values(skipInitial:) and all AsyncStream-based subscription APIs removed — use @Observable observation instead

Other

  • CollectionConcurrencyKit dependency removed
  • TextStyle: foregroundColor parameter renamed to foregroundStyle

Improvements

  • @MainActor protocols — no more per-member @MainActor annotations needed on conforming types
  • Synchronous coordinator navigation — pop, navigate, dismiss are synchronous; no Task { await } wrappers needed
  • Synchronous DataCache access — reads and writes are synchronous from MainActor context
  • ID-based collection merging — fixes a bug where populate could create duplicate entries instead of updating existing ones
  • Optional-collection populate variant — populate(_:with:) now supports optional collection key paths
  • SwiftLint configuration added
  • Documentation expanded with observation pattern hierarchy
  • Project templates updated for the new architecture

Release 1.4.1

03 Mar 15:01
8fe4065

Choose a tag to compare

What's Changed

Full Changelog: 1.4.0...1.4.1

1.3.2

19 Nov 09:28

Choose a tag to compare

Release made from particular commit, because the main has already breaking changes.
The PR for this realease is: #47
Full Changelog: 1.3.1...1.3.2

1.4.0

19 Nov 09:30
8e68ee1

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 1.3.2...1.4.0

1.3.1

28 Jul 08:44
3e15be8

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 1.3.0...1.3.1

1.3.0

27 Mar 12:55
8c83677

Choose a tag to compare

Breaking change

The Coordinator.pop function parameter destination is now required.

What's Changed

Full Changelog: 1.2.0...1.3.0

1.2.0

08 Nov 08:29
bc19b1b

Choose a tag to compare

What's Changed

Full Changelog: 1.1.1...1.2.0

1.1.1

26 Sep 08:10
a682316

Choose a tag to compare

What's Changed

Full Changelog: 1.1.0...1.1.1

1.1.0

19 Aug 07:19
28288d2

Choose a tag to compare

What's Changed

Full Changelog: 1.0.0...1.1.0