All Versions
58
Latest Version
Avg Release Cycle
75 days
Latest Release
-

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 for UITextInput/NSTextInput.
    • Adds rx_willDisplayCell and rx_didEndDisplayingCell extensions to UITableView.
    • ๐Ÿ‘Œ Improves playgrounds.
    Anomalies
    • ๐Ÿ›  Fixes in documentation.
    • โœ… Turns off Bitcode for RxTests CocoaPods integration.
    • Fixes UITextField.rx_text and UITextView.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
  • v2.4.0 Changes

    ๐Ÿ”‹ Features
    • โž• adds Driver.drive with Variable parameter.
    • ๐Ÿ”ฆ exposes RxSearchBarDelegateProxy
    • โž• adds rx_cancelButtonClicked to UISearchBar.
    • โž• adds rx_searchButtonClicked to UISearchBar.
    • โž• 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.
  • v2.3.1 Changes

    ๐Ÿ”‹ Features
    • ๐Ÿ‘ Xcode 7.3 / Swift 2.2 support
  • v2.3.0 Changes

    ๐Ÿ”‹ Features
    • โž• Adds rx_badgeValue to UITabBarItem.
    • โž• Adds rx_progress to UIProgresView.
    • โž• Adds rx_selectedScopeButtonIndex to UISearchBar.
    • โž• Adds asyncInstance to MainScheduler.
    • ๐Ÿ‘‰ Makes name parmeter optional for rx_notification extension.
    • โž• Adds UnitTests.md.
    • โž• Adds Tips.md.
    • ๐Ÿ“š Updates playground inline documentation with running instructions.
    • ๐Ÿš€ Synchronizes copy of RxDataSources source files inside example project to 0.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.
  • v2.2.0 Changes

    Public Interface anomalies
    • ๐Ÿ›  Fixes problem with timer operator. Changes return type from Observable<Int64> to Observable<T>. This could potentially cause code breakage, but it was an API anomaly.
    • ๐Ÿ—„ Curried functions were marked deprecated so they were replaced in UITableView and UICollectionView 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 to Driver).
    • โž• Adds doOnError convenience operator.
    • โž• Adds doOnCompleted convenience operator (also added to Driver).
    • โž• Adds skip, startWith to Driver.
    • โž• Adds rx_active extension to NSLayoutConstraint.
    • โž• Adds rx_refreshing extension to UIRefreshControl.
    • โž• Adds interval and timer to Driver.
    • โž• Adds rx_itemAccessoryButtonTapped to UITableView extensions.
    • โž• Adds rx_networkActivityIndicatorVisible to UIApplication.
    • โž• Adds rx_selected to UIControl.
    Anomalies
    • ๐Ÿ›  Fixes anomaly with registering multiple observers to UIBarButtonItem.
    • ๐Ÿ›  Fixes anomaly with blocking operators possibly over-stopping the RunLoop.
  • v2.1.0 Changes

    ๐Ÿ”‹ Features
    • โž• Adds UIImagePickerController delegate wrappers.
    • Adds SectionedViewDataSourceType that enables third party data sources to use existing rx_modelSelected/rx_modelDeselected wrappers.
    • โž• Adds rx_modelDeselected to UITableView
    • โž• Adds rx_itemDeselected to UITableView
    • โž• Adds rx_modelDeselected to UICollectionView
    • โž• Adds rx_itemDeselected to UICollectionView
    • โž• Adds rx_state to NSButton
    • โž• Adds rx_enabled to NSControl
    • โž• Adds UIImagePickerController usage example to Example app.
    Anomalies
    • โœ‚ Removes usage of OSSpinLocks from all Darwin 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 using TRACE_RESOURCES with verbosity level >= 2. #397
    • ๐Ÿ›  Fixes anomaly with logging of HTTP body of requests in RxCocoa project.
  • v2.0.0 Changes

    ๐Ÿ”‹ Features
    • ๐Ÿ”„ Changes package names to io.rx.[library]
    • ๐Ÿ“ฆ Packages data sources from RxDataSourceStarterKit into it's own repository RxDataSources under RxSwiftCommunity.
    • โœ‚ Removes deprecated APIs.
    Anomalies
    • Replaces hacky code that solved anomaly caused by interaction between autocorrect and text controls notification mechanism with proper solution. #333
  • 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.
    • ๐Ÿง Linux support (proof of concept, but single threaded mode works)
    • ๐ŸŽ‰ Initial support for Swift Package Manager
      • works on Linux (RxSwift, RxBlocking, RxTests)
      • doesn't work on OSX because it can't compile RxCocoa and RxTests (because of inclusion of XCTest 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
    • โž• Adds VirtualTimeScheduler to RxSwift
    • โž• Adds HistoricalScheduler to RxSwift
    • ๐Ÿ‘Œ 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 using RxTests 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 in Units.md.

    • ๐Ÿ’… Example of table view with editing is polished to use more functional approach.

    • โž• Adds deferred to Driver 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 view rx_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 to RxTests project.

    • โž• Adds seealso references to reactivex.io.

    • ๐Ÿ’… Polishes headers in source files and adds tests to enforce standard header format.

    • โž• Adds driveOnScheduler to enable scheduler mocking for Driver 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 and RxMutable box from public interface. (BREAKING CHANGE)
    • โฑ SchedulerType now isn't parametrized on Time and TimeInterval.
    • ๐Ÿ—„ Deprecates Variable implementing ObservableType in favor of asObservable().
      • Now variable also sends .Completed to observable sequence returned from asObservable when deallocated. If you were (mis)using variable to return single value Variable(1).map { x in ... } ... you can just use just operator Observable.just(1).map { x in ... }
    • โฑ 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 of just(1)

      Observable.empty() instead of empty()

      Observable.error() instead of failWith()

      Observable.of(1, 2, 3) instead of sequenceOf(1, 2, 3)

      .debounce(0.2, scheduler: MainScheduler.sharedInstance) instead of .debounce(0.2, MainScheduler.sharedInstance)

      Observable.range(start:0, count: 10) instead of range(0, 10)

      Observable.generate(initialState: 0, condition: { $0 < 10 }) { $0 + 1 } instead of generate(0, condition: { $0 < 10 }) { $0 + 1 }

      Observable<Int>.interval(1, scheduler: MainScheduler.sharedInstance) instead of interval(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 of rx_controlEvent.

    • โฑ Deprecates MainScheduler.sharedInstance in favor of MainScheduler.instance

    • โฑ Deprecates ConcurrentMainScheduler.sharedInstance in favor of ConcurrentMainScheduler.instance

    • ๐Ÿ—„ Deprecates factory methods from Drive in favor of Driver factory methods.

    • โœ… Deprecates sampleLatest in favor of withLatestFrom.

    • ๐Ÿ—„ Deprecates ScopedDisposable and scopedDispose() in favor of DisposeBag.

    ๐Ÿ›  Fixed
    • ๐Ÿ‘Œ Improves and documents resource leak code in RxExample.
    • Replaces unowned reference with weak references in RxCocoa project.
    • Fixes debug operator not using __FILE__ and __LINE__ properly.
    • ๐Ÿ›  Fixes anomaly with timeout operator.
    • ๐Ÿ›  Fixes problem with spell-checker and UIText* losing focus.
  • v2.0.0-beta.4 Changes

    โšก๏ธ Updated
    • โž• Adds ignoreElements operator.
    • โž• Adds timeout operator (2 overloads).
    • โž• Adds shareReplayLatestWhileConnected operator.
    • ๐Ÿ”„ Changes Driver to internally use shareReplayLatestWhileConnected for subscription sharing instead of shareReplay(1).
    • โž• Adds flatMapFirst to Driver unit.
    • โž• Adds replayAll operator.
    • โž• Adds createUnbounded factory method to ReplaySubject.
    • โž• Adds optional type hints to empty, failWith and never (empty(Int) now works and means empty observable sequence of Ints).
    • โž• Adds rx_hidden to UIView.
    • โž• Adds rx_alpha to UIView.
    • โž• Adds rx_attributedText to UILabel.
    • โž• Adds rx_animating to UIActivityIndicatorView.
    • โž• Adds rx_constant to NSLayoutConstraint.
    • โœ‚ Removes implicitly unwrapped optional from NSURLSession.rx_response.
    • Exposes rx_createDataSourceProxy, rx_createDelegateProxy on UITableView/UICollectionView.
    • ๐Ÿ”ฆ Exposes rx_createDelegateProxy on UITextView.
    • ๐Ÿ”ฆ Exposes rx_createDelegateProxy on UIScrollView.
    • ๐Ÿ”ฆ Exposes RxCollectionViewDataSourceProxy.
    • ๐Ÿ”ฆ Exposes RxCollectionViewDelegateProxy.
    • ๐Ÿ”ฆ Exposes RxScrollViewDelegateProxy.
    • ๐Ÿ”ฆ Exposes RxTableViewDataSourceProxy.
    • ๐Ÿ”ฆ Exposes RxTableViewDelegateProxy.
    • ๐Ÿ—„ Deprecates proxyForObject in favor of proxyForObject<P : DelegateProxyType>(type: P.Type, _ object: AnyObject) -> P.
    • Deprecates rx_modelSelected<T>() in favor of rx_modelSelected<T>(modelType: T.Type).
    • โž• Adds func bindTo(variable: Variable<E>) -> Disposable extension to ObservableType.
    • ๐Ÿ”ฆ 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.
  • 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.
    • โž• Adds flatMapLatest (also added to Driver unit).
    • โž• Adds flatMapFirst operator (also added to Driver unit).
    • โž• Adds retryWhen operator.
    • โž• Adds window operator.
    • โž• Adds single operator.
    • โž• Adds single (blocking version) operator.
    • โž• Adds rx_primaryAction on UIButton for tvOS.
    • Transforms error types in RxSwift/RxCocoa projects from NSErrors to Swift enum types.
      • RxError
      • RxCocoaError
      • RxCocoaURLError
      • ...
    • NSURLSession extensions now return Observable<(NSData!, NSHTTPURLResponse)> instead of Observable<(NSData!, NSURLResponse!)>.
    • โšก๏ธ Optimizes consecutive map operators. For example map(validate1).map(validate2).map(parse) is now internally optimized to one map operator.
    • โž• Adds overloads for just, sequenceOf, toObservable that accept scheduler.
    • ๐Ÿ—„ Deprecates asObservable extension of Sequence in favor of toObservable.
    • โž• Adds toObservable extension to Array.
    • ๐Ÿ‘Œ Improves table view animated data source example.
    • ๐Ÿ’… Polishing of RxDataSourceStarterKit
      • differentiateForSectionedView operator
      • rx_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 use UIImage? instead of UIImage!.
    • ๐Ÿ›  Fixes improper usage of CustomStringConvertible and replaces it with CustomDebugStringConvertible.