Changelog History
Page 1
-
v7.0.0 Changes
- The UnidirectionalBinding operator
<~
returns non optional values. (#834, kudos to @NicholasTD07)
๐ 1. Fixed issue where
SingalProducer.try(upTo:interval:count:)
shares state between invocation ofstart
on the same producer. (#829, kudos to @sebastiangrail)๐ฆ 1.
Signal.Event
is now marked as frozen enum. (#841, kudos to @NachoSoto) - The UnidirectionalBinding operator
-
v6.7.0
-
v6.7.0-rc1 Changes
๐ฆ 1. New operator
SignalProducer.Type.interval(_:interval:on:)
for emitting elements from a given sequence regularly. (#810, kudos to @mluisbrown)๐ฆ 1.
Signal
offers two special variants for advanced users: unserialized and reentrant-unserialized. (#797)The input observer of these variants assume that mutual exclusion has been enforced by its callers.
You can create these variants through four
Signal
static methods:unserialized(_:)
,unserializedPipe(_:)
,reentrantUnserialized(_:)
andreentrantUnserializedPipe(_:)
. These would be adopted by ReactiveCocoa UIKit bindings to improve interoperability with Loop, to tackle some legitimate recursive delivery scenarios (e.g. around first responder management), and also to reduce fine-grained locking in ReactiveCocoa.Note that the default behavior of
Signal
has not been changed โ event serialization remains the default behavior.๐ฆ 1.
SignalProducer
offers an unserialized variant viaSignalProducer.unserialized(_:)
. (#797)โฑ 1.
TestScheduler
can now advanced its clock byTimeInterval
. (#828, kudos to @carsten-wenderdel)๐ 1.
Signal
and Properties now use fewer locks, which should translate into minor performance improvements. (#797)๐ 1. Fixed spelling error in
Lifetime.Token
class documentation. (#835, kudos to @ansonj)๐จ 1. As a continued refactoring effort since ReactiveSwift 6.6.0, all unary
Signal
andSignalProducer
operators have been migrated to a new internal representation.When debugging your application, the call stacks involving ReactiveSwift may now look cleaner, without the clutter of compiler-generated reabstraction thunks. See #799 for an example.
๐ฆ 1. New operator
SignalProducer.take(until:)
that forwards any values untilshouldContinue
returnsfalse
. Equivalent totake(while:)
, except it also forwards the last value that failed the check. (#839, kudos to @nachosoto) -
v6.6.1 Changes
โก๏ธ 1. Updated Carthage xcconfig dependency to 1.1 for proper building arm64 macOS variants. (#826, kudos to @MikeChugunov)
๐ฆ 1. Fixed issue with
SignalProducer.Type.interval()
making Swift 5.3 a requirement. (#823 kudos to @mluisbrown) -
v6.6.0 Changes
โฑ 1. Added the
SignalProducer.Type.interval()
operator for emitting values on a regular schedule. (#810, kudos to @mluisbrown)๐จ 1. When debugging your application, the call stacks involving ReactiveSwift may start to look cleaner and less cryptic. This is an on-going refactoring effort to improve the developer experience. See #799 for an example.
๐ 1. Bumped deployment target to iOS 9.0, per Xcode 12 warnings. (#818, kudos to @harleyjcooper)
๐ 1. Fixed a few deprecation warning when the project is being built. (#819, kudos to @apps4everyone)
origin/master
-
v6.5.0 Changes
October 27, 2020๐ This is the fifth minor release of ReactiveSwift 6.0.
โก๏ธ โ ๏ธ ReactiveSwift 6.5.0 is a strongly recommended update , especially for users routinely lifting custom
Signal
operators to work withSignalProducer
.๐ Changes
๐ Fixed a
SignalProducer.lift
issue which may leak intermediate signals. (#808)โ Add ExpressibleByNilLiteral constraint to OptionalProtocol (#805, kudos to @nkristek)
โ Add variadic sugar for boolean static methods such as
Property.any(boolProperty1, boolProperty2, boolProperty3)
(#801, kudos to @fortmarek) -
v6.4.0 Changes
September 29, 2020๐ This is the forth minor release of ReactiveSwift 6.
๐ Changes
๐ Minimum deployment target is now iOS 9.0+ when using Swift Package Manager, so as to silence Xcode 12 warnings. (#802)
๐ Fix a debug assertion in
Lock.try()
that could be raised in earlier OS versions (< iOS 10.0, < macOS 10.12). (#747, #788)Specifically, ReactiveSwift now recognizes
EDEADLK
as expected error code frompthread_mutex_trylock
alongside0
,EBUSY
andEAGAIN
. -
v6.3.0 Changes
May 25, 2020๐ This is the third minor release of ReactiveSwift 6.0.
โ Additions
Property
andMutableProperty
can now be used as property wrapper. Note that they remain a reference type container, so it may not be appropriate to use them in types requiring value semantics. (#781)class ViewModel { @MutableProperty var count: Int = 0func subscribe() { self.$count.producer.startWithValues { print("`count` has changed to \(count)") } } func increment() { print("count prior to increment: \(count)") self.$count.modify { $0 += 1 } } }
๐ฆ When
combineLatest
orzip
over a sequence ofSignalProducer
s orProperty
s, you can now specify an optionalemptySentinel
parameter, which would be used when the sequence is empty.โก๏ธ This becomes relevant, when the sequence of producers is calculated from some other Signal and the signal resulting from the joined producers is observed. If no value is sent when the sequence is empty, the observer gets terminated silently, and, e.g., the UI would not be updated.
(#774, kudos to @rocketnik)
Miscellaneous
โ 1. Test dependencies should no longer be built for SwiftPM users, as a result of ReactiveSwift moving to
swft-tools-version: 5.2
. (#784) -
v6.2.1 Changes
February 28, 2020๐ 1. Improved performance of joining signals by a factor of around 5. This enables joining of 1000 and more signals in a reasonable amount of time. ๐ฆ 1. Fixed
SignalProducer.debounce
operator that, when started more than once, would not deliver values on producers started after the first time. (#772, kudos to @gpambrozio)FlattenStrategy.throttle
is introduced. (#713, kudos to @inamiy) โก๏ธ 1. UpdatedREADME.md
to reflect Swift 5.1 compatibility and point snippets to 6.1.0 (#763, kudos to @Marcocanc) โก๏ธ 1. Update travis to Xcode 11.1 and Swift 5.1 (#764, kudos @petrpavlik)- [SwiftPM] Add platforms (#761, kudos to @ikesyo)
๐ 1. Renamed
filterMap
tocompactMap
and deprecatedfilterMap
(#746, kudos to @Marcocanc)
-
v6.2.0 Changes
January 07, 2020๐ Changes
FlattenStrategy.throttle
is introduced. (#713, kudos to @inamiy)Given a first inner stream, all subsequent inner streams sent by the upstream would be dropped until the first inner stream has completed. The whole process repeats indefinitely until the upstream terminates. The behavior is akin to
throttle(_:on:)
except for operating in the domain of streams instead of time.๐ฆ The package file of ReactiveSwift now declares supported platforms. (#761, kudos to @ikesyo)
๐ Renamed
filterMap
tocompactMap
and deprecatedfilterMap
(#746, kudos to @Marcocanc)