Releases: futuredapp/FuturedKit
Releases · futuredapp/FuturedKit
Release 2.0.1
Release 2.0.0
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
@Publishedproperties removed — conforming types must use@Observablemacro @StateObject→@State,@ObservedObject→ plain property,@EnvironmentObject→@Environment- AppSceneDelegate conforms to Observable (was ObservableObject)
DataCache
- Changed from actor to
@Observable@MainActorfinal 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
@Observableobservation instead
Other
- CollectionConcurrencyKit dependency removed
- TextStyle: foregroundColor parameter renamed to foregroundStyle
Improvements
@MainActorprotocols — no more per-member@MainActorannotations 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
1.3.2
1.4.0
What's Changed
- Feature: Add @mainactor annotations to accommodate Swift 6 checks by @mikolasstuchlik in #39
- Housekeep/update template by @jmarek41 in #46
- Add textfield in alert support by @viktorvrchlavsky in #47
- Fix: Prevent overriding child view presentation detents by @janpollak in #48
New Contributors
- @janpollak made their first contribution in #48
Full Changelog: 1.3.2...1.4.0
1.3.1
What's Changed
- Fix typos by @viktorvrchlavsky in #43
- DataCache add populate functions by @ssestak in #33
- Update docs by @jmarek41 in #45
New Contributors
- @viktorvrchlavsky made their first contribution in #43
Full Changelog: 1.3.0...1.3.1
1.3.0
Breaking change
The Coordinator.pop function parameter destination is now required.
What's Changed
- Mark TabViewFlow init as @mainactor by @ssestak in #35
- Coordinator update pop functions by @ssestak in #34
- Mark NavigationStackFlow init as @mainactor by @ssestak in #37
- Modal navigation stack presentation detents by @ssestak in #38
- Update Makefile by @jmarek41 in #42
Full Changelog: 1.2.0...1.3.0
1.2.0
What's Changed
- Add public init for modal cover model by @ssestak in #32
- Feature: Text style by @prochazkafilip in #31
Full Changelog: 1.1.1...1.2.0
1.1.1
What's Changed
- Housekeep: Remove legacy files and polish the Coordinator API by @mikolasstuchlik in #27
- Feature: Source api documentation by @mikolasstuchlik in #28
- Fix access level of SceneDelegate by @ssestak in #29
Full Changelog: 1.1.0...1.1.1