Changelog History
Page 5
-
v2.5.0 Changes
๐ Features
- ๐ฆ Exposes
installForwardDelegate
. - โ Adds
proxyForObject
as protocol extension and deprecates global function version. - ๐ Improves
installForwardDelegate
assert messaging. - ๐ Improves gesture recognizer extensions to use typed gesture recognizers in
rx_event
. - โ Adds
RxTextInput
protocol to enable creating reactive extensions forUITextInput/NSTextInput
. - Adds
rx_willDisplayCell
andrx_didEndDisplayingCell
extensions toUITableView
. - ๐ Improves playgrounds.
Anomalies
- ๐ Fixes in documentation.
- โ
Turns off Bitcode for
RxTests
CocoaPods integration. - Fixes
UITextField.rx_text
andUITextView.rx_text
integrations to be more robust when used with two way binding. - ๐ Fixes two way binding example code so it now properly handles IME used in Asian cultures and adds explanations how to properly perform two way bindings. https://github.com/ReactiveX/RxSwift/issues/649
- โ Removes
distinctUntilChanged
from control extensions. https://github.com/ReactiveX/RxSwift/issues/626
- ๐ฆ Exposes
-
v2.4.0 Changes
๐ Features
- โ adds
Driver.drive
withVariable
parameter. - ๐ฆ exposes
RxSearchBarDelegateProxy
- โ adds
rx_cancelButtonClicked
toUISearchBar
. - โ adds
rx_searchButtonClicked
toUISearchBar
. - โ adds
UISearchController
extensions:rx_didDismiss
rx_didPresent
rx_present
rx_willDismiss
rx_willPresent
Anomalies
- ๐ Fixes anomaly with
multicast
disposing subscription. - ๐ Small grammar fixes in code.
- ๐ Fixes in documentation.
- โ adds
-
v2.3.1 Changes
๐ Features
- ๐ Xcode 7.3 / Swift 2.2 support
-
v2.3.0 Changes
๐ Features
- โ Adds
rx_badgeValue
toUITabBarItem
. - โ Adds
rx_progress
toUIProgresView
. - โ Adds
rx_selectedScopeButtonIndex
toUISearchBar
. - โ Adds
asyncInstance
toMainScheduler
. - ๐ Makes
name
parmeter optional forrx_notification
extension. - โ Adds
UnitTests.md
. - โ Adds
Tips.md
. - ๐ Updates playground inline documentation with running instructions.
- ๐ Synchronizes copy of
RxDataSources
source files inside example project to0.6
release.
Anomalies
- ๐ Fixes anomaly with synchronization in disposable setter of
SingleAssignmentDisposable
. - ๐ Improves
DelegateProxy
memory management. - ๐ Fixes anomaly during two way binding of
UITextView
text value. - ๐ Improves
single
operator so it handles reentrancy better.
- โ Adds
-
v2.2.0 Changes
Public Interface anomalies
- ๐ Fixes problem with
timer
operator. Changes return type fromObservable<Int64>
toObservable<T>
. This could potentially cause code breakage, but it was an API anomaly. - ๐ Curried functions were marked deprecated so they were replaced in
UITableView
andUICollectionView
extensions with equivalent lambdas. This shouldn't break anyone's code, but it is a change in public interface.
This is example of those changes:
- public func rx_itemsWithCellFactory<S : Sequence, O : ObservableType where O.E == S> (source: O) (cellFactory: (UITableView, Int, S.Iterator.Element) -> UITableViewCell) -> Disposable + public func rx_itemsWithCellFactory<S : Sequence, O : ObservableType where O.E == S> (source: O) -> (cellFactory: (UITableView, Int, S.Iterator.Element) -> UITableViewCell) -> Disposable
- ๐ Fixes anomaly in
CLLocationManager
extensions
- public var rx_didFinishDeferredUpdatesWithError: RxSwift.Observable<NSError> { get } + public var rx_didFinishDeferredUpdatesWithError: RxSwift.Observable<NSError?> { get }
๐ Features
- โ Adds
UIBindingObserver
. - โ Adds
doOnNext
convenience operator (also added toDriver
). - โ Adds
doOnError
convenience operator. - โ Adds
doOnCompleted
convenience operator (also added toDriver
). - โ Adds
skip
,startWith
toDriver
. - โ Adds
rx_active
extension toNSLayoutConstraint
. - โ Adds
rx_refreshing
extension toUIRefreshControl
. - โ Adds
interval
andtimer
toDriver
. - โ Adds
rx_itemAccessoryButtonTapped
toUITableView
extensions. - โ Adds
rx_networkActivityIndicatorVisible
toUIApplication
. - โ Adds
rx_selected
toUIControl
.
Anomalies
- ๐ Fixes anomaly with registering multiple observers to
UIBarButtonItem
. - ๐ Fixes anomaly with blocking operators possibly over-stopping the
RunLoop
.
- ๐ Fixes problem with
-
v2.1.0 Changes
๐ Features
- โ Adds
UIImagePickerController
delegate wrappers. - Adds
SectionedViewDataSourceType
that enables third party data sources to use existingrx_modelSelected
/rx_modelDeselected
wrappers. - โ Adds
rx_modelDeselected
toUITableView
- โ Adds
rx_itemDeselected
toUITableView
- โ Adds
rx_modelDeselected
toUICollectionView
- โ Adds
rx_itemDeselected
toUICollectionView
- โ Adds
rx_state
toNSButton
- โ Adds
rx_enabled
toNSControl
- โ Adds
UIImagePickerController
usage example to Example app.
Anomalies
- โ Removes usage of
OSSpinLock
s from allDarwin
platforms because of problems with inversion of priority on iOS. Original thread on swift mailing list is here - Reduces verbose output from
RxCocoa
project in debug mode.TRACE_RESOURCES
is now also treated as a verbosity level setting. It is possible to get old output by usingTRACE_RESOURCES
with verbosity level>= 2
. #397 - ๐ Fixes anomaly with logging of HTTP body of requests in
RxCocoa
project.
- โ Adds
-
v2.0.0 Changes
๐ Features
- ๐ Changes package names to
io.rx.[library]
- ๐ฆ Packages data sources from
RxDataSourceStarterKit
into it's own repository RxDataSources underRxSwiftCommunity
. - โ Removes deprecated APIs.
Anomalies
- Replaces hacky code that solved anomaly caused by interaction between autocorrect and text controls notification mechanism with proper solution. #333
- ๐ Changes package names to
-
v2.0.0-rc.0 Changes
๐ Features
- โ Adds generic
public func rx_sentMessage(selector: Selector) -> Observable<[AnyObject]>
that enables observing of messages sent to any object. (This is enabled if DISABLE_SWIZZLING isn't set).- use cases like
cell.rx_sentMessage("prepareForReuse")
are now supported.
- use cases like
- ๐ง Linux support (proof of concept, but single threaded mode works)
- more info in Documentation/Linux.md
- ๐ Initial support for
Swift Package Manager
- works on
Linux
(RxSwift
,RxBlocking
,RxTests
) - doesn't work on OSX because it can't compile
RxCocoa
andRxTests
(because of inclusion ofXCTest
extensions), but OSX has two other package managers and manual method. - Project content is linked to
Sources
automagically using custom tool - more info in Documentation/Linux.md
- works on
- โ Adds
VirtualTimeScheduler
toRxSwift
- โ Adds
HistoricalScheduler
toRxSwift
- ๐ Improves performance of virtual schedulers using priority queue.
โ Adds new
RxTests
library to enable testing of custom Rx operators. โ This library contains everything needed to write unit tests in the following way:func testMap() { let scheduler = TestScheduler(initialClock: 0) let xs = scheduler.createHotObservable([ next(150, 1), next(210, 0), next(220, 1), next(230, 2), next(240, 4), completed(300) ]) let res = scheduler.start { xs.map { $0 * 2 } } let correctEvents = [ next(210, 0 * 2), next(220, 1 * 2), next(230, 2 * 2), next(240, 4 * 2), completed(300) ] let correctSubscriptions = [ Subscription(200, 300) ] XCTAssertEqual(res.events, correctEvents) XCTAssertEqual(xs.subscriptions, correctSubscriptions) }
โ Adds test project for
RxExample-iOS
that demonstrates how to easily write marble tests usingRxTests
project.let ( usernameEvents, passwordEvents, repeatedPasswordEvents, loginTapEvents, expectedValidatedUsernameEvents, expectedSignupEnabledEvents ) = ( scheduler.parseEventsAndTimes("e---u1----u2-----u3-----------------", values: stringValues).first!, scheduler.parseEventsAndTimes("e----------------------p1-----------", values: stringValues).first!, scheduler.parseEventsAndTimes("e---------------------------p2---p1-", values: stringValues).first!, scheduler.parseEventsAndTimes("------------------------------------", values: events).first!, scheduler.parseEventsAndTimes("e---v--f--v--f---v--o----------------", values: validations).first!, scheduler.parseEventsAndTimes("f--------------------------------t---", values: booleans).first! )
โ Adds example app for GitHub signup example that shows the same example written with and without
Driver
.Documents idea behind units and
Driver
inUnits.md
.๐ Example of table view with editing is polished to use more functional approach.
โ Adds
deferred
toDriver
unit.โ Removes implicitly unwrapped optionals from
CLLocationManager
extensions.โ Removes implicitly unwrapped optionals from
NSURLSession
extensions.๐ Polishes the
debug
operator format.โ Adds optional
cellType
parameter to Table/Collection viewrx_itemsWithCellIdentifier
method.๐ Polish for calculator example in
RxExample
app.โ Documents and adds unit tests for tail recursive optimizations of
concat
operator.๐ Moves
Event
equality operator toRxTests
project.โ Adds
seealso
references toreactivex.io
.๐ Polishes headers in source files and adds tests to enforce standard header format.
โ Adds
driveOnScheduler
to enable scheduler mocking forDriver
during unit tests.โ Adds assertions to
drive*
family of functions that makes sure they are always called from main thread.๐ Refactoring and polishing of internal ObjC runtime interception architecture.
๐ Deprecated
- ๐ Changes
ConnectableObservable
, generic argument is now type of elements in observable sequence and not type of underlying subject. (BREAKING CHANGE) - โ Removes
RxBox
andRxMutable
box from public interface. (BREAKING CHANGE) - โฑ
SchedulerType
now isn't parametrized onTime
andTimeInterval
. - ๐ Deprecates
Variable
implementingObservableType
in favor ofasObservable()
.- Now variable also sends
.Completed
to observable sequence returned fromasObservable
when deallocated. If you were (mis)using variable to return single valueVariable(1).map { x in ... }
... you can just usejust
operatorObservable.just(1).map { x in ... }
- Now variable also sends
โฑ Deprecates free functions in favor of
Observable
factory methods, and deprecates versions of operators with hidden external parameters (scheduler, count) in favor of ones with explicit parameter names. E.g.Observable.just(1)
instead ofjust(1)
Observable.empty()
instead ofempty()
Observable.error()
instead offailWith()
Observable.of(1, 2, 3)
instead ofsequenceOf(1, 2, 3)
.debounce(0.2, scheduler: MainScheduler.sharedInstance)
instead of.debounce(0.2, MainScheduler.sharedInstance)
Observable.range(start:0, count: 10)
instead ofrange(0, 10)
Observable.generate(initialState: 0, condition: { $0 < 10 }) { $0 + 1 }
instead ofgenerate(0, condition: { $0 < 10 }) { $0 + 1 }
Observable<Int>.interval(1, scheduler: MainScheduler.sharedInstance)
instead ofinterval(1, MainScheduler.sharedInstance)
...
If you want to continue using free functions form, you can define your free function aliases for
Observable
factory methods (basically copy deprecated methods).๐ Deprecates
UIAlertView
extensions.- These extensions could be stored locally if needed.
๐ Deprecates
UIActionSheet
extensions.- These extensions could be stored locally if needed.
Deprecates
rx_controlEvents
in favor ofrx_controlEvent
.โฑ Deprecates
MainScheduler.sharedInstance
in favor ofMainScheduler.instance
โฑ Deprecates
ConcurrentMainScheduler.sharedInstance
in favor ofConcurrentMainScheduler.instance
๐ Deprecates factory methods from
Drive
in favor ofDriver
factory methods.โ Deprecates
sampleLatest
in favor ofwithLatestFrom
.๐ Deprecates
ScopedDisposable
andscopedDispose()
in favor ofDisposeBag
.
๐ Fixed
- ๐ Improves and documents resource leak code in
RxExample
. - Replaces
unowned
reference withweak
references inRxCocoa
project. - Fixes
debug
operator not using__FILE__
and__LINE__
properly. - ๐ Fixes anomaly with
timeout
operator. - ๐ Fixes problem with spell-checker and
UIText*
losing focus.
- โ Adds generic
-
v2.0.0-beta.4 Changes
โก๏ธ Updated
- โ Adds
ignoreElements
operator. - โ Adds
timeout
operator (2 overloads). - โ Adds
shareReplayLatestWhileConnected
operator. - ๐ Changes
Driver
to internally useshareReplayLatestWhileConnected
for subscription sharing instead ofshareReplay(1)
. - โ Adds
flatMapFirst
toDriver
unit. - โ Adds
replayAll
operator. - โ Adds
createUnbounded
factory method toReplaySubject
. - โ Adds optional type hints to
empty
,failWith
andnever
(empty(Int)
now works and means empty observable sequence ofInt
s). - โ Adds
rx_hidden
toUIView
. - โ Adds
rx_alpha
toUIView
. - โ Adds
rx_attributedText
toUILabel
. - โ Adds
rx_animating
toUIActivityIndicatorView
. - โ Adds
rx_constant
toNSLayoutConstraint
. - โ Removes implicitly unwrapped optional from
NSURLSession.rx_response
. - Exposes
rx_createDataSourceProxy
,rx_createDelegateProxy
onUITableView
/UICollectionView
. - ๐ฆ Exposes
rx_createDelegateProxy
onUITextView
. - ๐ฆ Exposes
rx_createDelegateProxy
onUIScrollView
. - ๐ฆ Exposes
RxCollectionViewDataSourceProxy
. - ๐ฆ Exposes
RxCollectionViewDelegateProxy
. - ๐ฆ Exposes
RxScrollViewDelegateProxy
. - ๐ฆ Exposes
RxTableViewDataSourceProxy
. - ๐ฆ Exposes
RxTableViewDelegateProxy
. - ๐ Deprecates
proxyForObject
in favor ofproxyForObject<P : DelegateProxyType>(type: P.Type, _ object: AnyObject) -> P
. - Deprecates
rx_modelSelected<T>()
in favor ofrx_modelSelected<T>(modelType: T.Type)
. - โ Adds
func bindTo(variable: Variable<E>) -> Disposable
extension toObservableType
. - ๐ฆ Exposes
ControlEvent
init. - ๐ฆ Exposes
ControlProperty
init. - ๐จ Refactoring of example app
- Divides examples into sections
- Adds really simple examples of how to do simple calculated bindings with vanilla Rx.
- Adds really simple examples of table view extensions (sectioned and non sectioned version).
- Refactoring of
GitHub sign in example
to use MVVM paradigm.
๐ Fixed
- ๐ Fixes documentation for
flatMapFirst
- ๐ Fixes problem with delegate proxies not detecting all delegate methods in delegate proxy hierarchy.
- โ Adds
-
v2.0.0-beta.3 Changes
โก๏ธ Updated
- ๐ Improves KVO mechanism.
- Type of observed object is now first argument
view.rx_observe(CGRect.self, "frame")
- Support for observing ObjC bridged enums and
RawRepresentable
protocol - Support for easier extending of KVO using
KVORepresentable
protocol - Deprecates KVO extensions that don't accept type as first argument in favor of ones that do.
- Type of observed object is now first argument
- โ Adds
flatMapLatest
(also added toDriver
unit). - โ Adds
flatMapFirst
operator (also added toDriver
unit). - โ Adds
retryWhen
operator. - โ Adds
window
operator. - โ Adds
single
operator. - โ Adds
single
(blocking version) operator. - โ Adds
rx_primaryAction
onUIButton
fortvOS
. - Transforms error types in
RxSwift
/RxCocoa
projects fromNSError
s to Swift enum types.RxError
RxCocoaError
RxCocoaURLError
- ...
NSURLSession
extensions now returnObservable<(NSData!, NSHTTPURLResponse)>
instead ofObservable<(NSData!, NSURLResponse!)>
.- โก๏ธ Optimizes consecutive map operators. For example
map(validate1).map(validate2).map(parse)
is now internally optimized to onemap
operator. - โ Adds overloads for
just
,sequenceOf
,toObservable
that accept scheduler. - ๐ Deprecates
asObservable
extension ofSequence
in favor oftoObservable
. - โ Adds
toObservable
extension toArray
. - ๐ Improves table view animated data source example.
- ๐
Polishing of
RxDataSourceStarterKit
differentiateForSectionedView
operatorrx_itemsAnimatedWithDataSource
extension
- ๐ Makes blocking operators run current thread's runloop while blocking and thus disabling deadlocks.
๐ Fixed
- ๐ Fixes example with
Variable
in playgrounds so it less confusing regarding memory management. - ๐ Fixes
UIImageView
extensions to useUIImage?
instead ofUIImage!
. - ๐ Fixes improper usage of
CustomStringConvertible
and replaces it withCustomDebugStringConvertible
.
- ๐ Improves KVO mechanism.