Releases: Fueled/ios-utilities
v5.0.0
What's Changed
- [CHORE] Modernize project configuration and tooling by @hadiidbouk in #94
- [FEAT] Add swift concurrency target by @hadiidbouk in #95
- [STYLE] Use fueled colors for the hero image by @hadiidbouk in #96
- [CHORE] Refactor docs generation workflow by @hadiidbouk in #97
- [CHORE] Remove generated documentation from repository by @hadiidbouk in #98
Full Changelog: 4.1.0...5.0.0
v4.1.0
What's Changed
- Add utils for Combine & SwiftUI by @stephanecopin in #44
- Misc updates by @stephanecopin in #45
- Action fixes by @stephanecopin in #46
- Combine/updates by @stephanecopin in #47
- Adding additional helpers by @stephanecopin in #48
- Reactive Swift / Combine Bridge by @stephanecopin in #50
- Ordered set updates by @stephanecopin in #49
- Fix segfault when using
backgroundBlurwhen compiling with optimizations enabled by @stephanecopin in #51 - [Regex] Match and return regex captured groups by @notbenoit in #41
- Fix macOS target + minor updates by @stephanecopin in #52
- Fixes & additional updates by @stephanecopin in #53
- Feat/combine additions by @stephanecopin in #54
- Add some unit tests for non-UI related helpers by @stephanecopin in #55
- Remove initializers of TapAction due to segfault by @stephanecopin in #56
- Update PodSpec & code to allow for iOS 13/SwiftUI by @stephanecopin in #57
- Fix crash related to
CombineReactiveExtensions'scancellablesby @stephanecopin in #58 - Remove #if false from TapAction by @stephanecopin in #59
- chore(deps): bump kramdown from 2.3.0 to 2.3.1 by @dependabot[bot] in #61
- [ReactiveTapAction] Change tap action visibility by @notbenoit in #60
- Fix
combinePrevious&ignoreRepeatsworking only on one Publisher, and leaving any other to not send values anymore. by @stephanecopin in #62 - chore(collections): move CollectionExtensions to be accessible from Core folder by @robdeans in #63
- Fix combine extensions visibility by @stephanecopin in #64
- chore(deps): bump rexml from 3.2.4 to 3.2.5 by @dependabot[bot] in #65
- Make
mapfunction rethrows by @stephanecopin in #66 - Add
confirmActionparameter totapActionallowing to optionally add a confirm action to a button action by @stephanecopin in #67 - chore(deps): bump addressable from 2.7.0 to 2.8.0 by @dependabot[bot] in #68
- fix(atomic): fix Atomic & AtomicValue struct which read access would not actually be atomic by @stephanecopin in #69
- Fix termination that could be sent twice by @stephanecopin in #70
- chore(deps): bump git from 1.7.0 to 1.11.0 by @dependabot[bot] in #74
- [SwiftPM] Add Swift Package Manager Support by @notbenoit in #73
- [PR Check] Add Danger and swift tests by @notbenoit in #75
- [Project] Drop support for ReactiveSwift by @notbenoit in #76
- Use one Combine target and remove Cocoapods & UIKIt files by @hadiidbouk in #86
- Remove OrderedSet since it's now available in swift-collections by @hadiidbouk in #88
- Remove non-needed canImport checks by @hadiidbouk in #87
- Refactor - Swift 6, Remove outdated code, and new docs by @hadiidbouk in #91
- Use Swift Docc Plugin to generate the products documentation by @hadiidbouk in #92
New Contributors
- @notbenoit made their first contribution in #41
- @dependabot[bot] made their first contribution in #61
- @robdeans made their first contribution in #63
- @hadiidbouk made their first contribution in #86
Full Changelog: 2.0.3...4.1.0
Drop support for ReactiveSwift
Swift Package Manager Support
Combine and SwiftUI additions
New Features/Enhancements
-
Add
ActionProtocol -
Add
AnyAction, allowing to type-erase any actions represented by aActionProtocol -
Add
CoalescingAction&OverridingAction -
Add a
CombineExtensions&CombineExtensionsProviderprotocol, replicating the.reactiveof ReactiveSwift (so as not to pollute too much the global namespace) -
All
NSObjectnow can have acancellablesobject attached to them via<object>.combineExtensions.cancellables. It's created lazily, so there's impact if not used. -
Extend
Publisher.handleEventsto add two new hooks:receiveTermination: When either a completion or a cancellation is receivedreceiveResult: Takes aResult, and called when either values are received or an error is received
-
Add
Publisher.promoteOptional() -
Add
then(receiveResult:), which takes a closure with aResult, allowing to handle values & error in the same place -
Add
sinkForLifetimeOf(_:)methods family, allowing to sink on a publisher and link to the lifetime of a givenCombineExtensionsProvider & AnyObject. The goal of this is to avoid having to write the classic boilerplate code in Combine handling with having to createcancellablesfor every single object (this used thecancellablesextension mentioned above). -
Add
performDuringLifetimeOf(_:action:), allowing to link an action with the lifetime of an object. This act as an equivalent formakeBindingTargetfromReactiveSwiftwhen calling functions or assigning multiple variables. -
Add
assign(to:forLifetimeOf:), allowing to assign the output of the producer to a keyPath, keeping it alive until the specified object is deallocated. -
Add
TapActionand<UIControl>.combineExtensions.tapped, allowing to link anActionto a button, without having to do the bindings manually (similar toUIButton.reactive.pressedin ReactiveCocoa) -
Add
<UIControl>.publisherForControlEvent(_:), to get a publisher that triggers on any control events. -
Add
(UITextField/UITextView).(textValues|continuousTextValues), which are equivalent to same thing as for ReactiveCocoa.
Stéphane Copin
#54 -
Add an optional
insetsparameter toaddAndFitSubview() -
Make
removeArrangedSubviews()'sremoveFromHierachyparameter default totrue -
Add
tappedhelper to link anyReactiveActionProtocolto anyUIControl -
Add
AnyIdentifiable&AnyActionfor type-erasedIdentifiable&ReactiveActionProtocolrespectively -
Add
OverridingAction, a newActionthat if executed when already executing, will cancel the previous producer and start a new one -
Make
OrderedSetconform toSetAlgebra
Stéphane Copin
#53
Bug Fixes
-
Fix a bug in
CombineLatestManywhere cancelling the resulting publisher would not cancel the array of publishers themselves.
Stéphane Copin
#55 -
Fix a bug in
Actionwhere a cancellation would be ignored and not setisExecutingtofalse
Stéphane Copin
#54 -
Fix an internal state corruption issue in
OrderedSet
Stéphane Copin
#53
Breaking changes
- The original
TapAction,OverridingActionandAnyActionwere all prefixed withReactive.
Stéphane Copin
#54
Combine & SwiftUI initial additions
Add many Combine & SwiftUI helpers, and remove all deprecated previously items.
This release also introduces subspecs, allowing to specify exactly what you're looking to use within FueledUtils.
Maintenance release: bug fixes
Merge pull request #39 from Fueled/paging-fixes fix(paging): Fix paging formulas
Swift 5, RAS 6, RAC 10
Deprecated methods and classes have been marked unavailable.
Backwards compatibility fix
This is the last release to support Swift 4.2
Update to RAC 9, add support for tvOS
Merge pull request #29 from Fueled/rac-9 chore(project): update to rac9 and include needed sources for tvOS.