Skip to content

Releases: ReactiveX/RxSwift

Graham

06 Nov 20:33
Compare
Choose a tag to compare

Anomalies

  • Fixes RxCocoa problems on macOS (TextInput now uses NSTextInputClient)
  • Hides accidentally exposed BagKey structure.
  • Makes notification extension name parameter optional.

Aenea

23 Oct 21:21
Compare
Choose a tag to compare
  • Prefixes boolean properties with is and makes String? properties consistent.
    • rx.hidden -> rx.isHidden
    • rx.enabled -> rx.isEnabled
      ...
      also ...
    • since rx.text has now type String? to be consistent with UIKit, in case String is needed
      there is rx.text.orEmpty that has String type.
  • Renames title(controlState:) on UIButton to title(for:).
  • All data structures are now internal (Bag, Queue, PriorityQueue ...)
  • Improves performance of Bag.
  • Polishes RxCocoa URLSession extensions
    • JSON -> json
    • return type is Any instead of AnyObject
    • replaces response tuple parameters, now it's (HTTPResponse, Data)
    • removes name hiding for request parameter
  • Migrates Driver and NSNotification tests to Linux.
  • Removes RxTest from OSX + SPM integration until usable XCTest support on OSX.
  • Renames ObserverType.map to OberverType.mapObserver because of possible ambigutites with subjects.
  • Improves dispatch queue detection logic and replaces concept of threads in favor of dispatch queues (solves a lot
    of problems on Linux environment).
  • Replaces SectionedViewDataSourceType.model(_:) with SectionedViewDataSourceType.model(at:)
  • Renames OSX to macOS across the project.

Anomalies

  • Fixes wrong casing in #import "include/_RXObjCRuntime.h" (was creating issues for people with
    case sensitive file system). #949
  • Fixes issues with locking strategy for subjects. #936
  • Fixes code example in comments of RxTableViewExtensions that didn't compile. #947
  • Adds .swift-version to help package managers to detect Swift 3 version.

Baneby

17 Oct 01:17
Compare
Choose a tag to compare
Baneby Pre-release
Pre-release
  • Renames RxTests library to RxTest because of problems with Swift Package Manager.
  • Adds Swift Package Manager support
  • Adds Linux support
  • Replaces AnyObserver with UIBindingObserver in public interface.
  • Renames resourceCount to Resources.total.
  • Makes rx.text type consistent with UIKit String? type.
textField.rx.text          // <- now has type `ControlProperty<String?>`
textField.rx.text.orEmpty  // <- now has type `ControlProperty<String>`
  • Adds optional overloads for bindTo and drive. Now the following works:
let text: Observable<String> = Observable.just("")

// Previously `map { $0 }` was needed because of mismatch betweeen sequence `String` type and `String?` type
// on binding `rx.text` observer.
text.bindTo(label.rx.text)  
   .addDisposableTo(disposeBag)

...

let text = Driver.just("")
text.drive(label.rx.text)
   .addDisposableTo(disposeBag)
  • Adds trim output parameter to debug operator. #930
  • Renames NSDate to Date everywhere.
  • Renames scheduler init param globalConcurrentQueueQOS to qos and removes custom enum wrapper.
  • Adds setter to rx property to enable mutation of base object.

Elena

04 Oct 11:44
Compare
Choose a tag to compare
Elena Pre-release
Pre-release
  • Subscription disposables now only create strong references to sinks until being disposed or sequence terminates. #573
  • Introduces SharedSequence and makes Driver just a specialization of SharedSequence.
    That means Driver is now just one specific SharedSequence and it is now possible to easily create new concepts that have another compile time guarantees in a couple of lines of code.
    E.g. choosing a background scheduler on which elements are delivered, or choosing share as a sharing strategy instead of shareReplayLatestWhileConnected.
  • Moves Reactive struct and ReactiveCompatible from RxCocoa to RxSwift to enable third party consumers to remove RxCocoa dependency.
  • Add rx. extensions on Types.
  • Moves UIImagePickerViewController and CLLocationManager out of RxCocoa to RxExample project because of App Store submissions issues
    on iOS 10.
  • Adds sentMessage got its equivalent sequence methodInvoked that produces elements after method is invoked (vs before method is invoked).
  • Deprecates observe method on DelegateProxy in favor of sentMessage.
  • Adds simetric methodInvoked method on DelegateProxy that enables observing after method is invoked.
  • Moves all delegate extensions from using sentMessage to using methodInvoked (that fixes some problem with editing data sources)
  • Fixes problem with RxTableViewDataSourceProxy source enabling editing of table view cells (swipe on delete) even if there weren't
    any observers or forwardToDelegate wasn't implementing UITableViewDataSource.tableView(_:commit:forRowAt:). #907
  • Makes DelegateProxy open. #884
  • Deprecates extensions that were polluting Swift collection namespaces and moves them to static functions on Observable
    • Observable.combineLatest
    • Observable.zip
    • Observable.concat
    • Observable.catchError (sequence version)
    • Observable.amb
  • Deprecates extensions that were polluting Swift collection namespaces and moves them to static functions on Driver
    • Driver.combineLatest
    • Driver.zip
    • Driver.concat
    • Driver.catchError (sequence version)
    • Driver.amb
  • Update Getting Started document, section on creating an observable that performs work to Swift 3.0.
  • Removes stale installation instructions.

Oz

14 Sep 22:41
Compare
Choose a tag to compare
Oz Pre-release
Pre-release

Features

  • Adapts to new Swift 3.0 syntax.
  • Corrects throttle operator behavior to be more consistent with other platforms. Adds latest flag that controls should latest element
    be emitted after dueTime.
  • Adds delay operator.
  • Adds UISearchBar extensions:
    • bookmarkButtonClicked
    • resultsListButtonClicked
    • textDidBeginEditing
    • textDidEndEditing
  • Moves CLLocationManager and UIImagePickerViewController extensions from RxCocoa to RxExample project. #874
  • Adds matrix CI builds.

Black-Scholes

21 Aug 19:55
Compare
Choose a tag to compare
Black-Scholes Pre-release
Pre-release

Requirements

  • Xcode 8.0 beta 6 (8S201h)
  • Swift 3.0

Features

  • Modernizes API to be more consistent with Swift 3.0 API Design Guidelines
  • Replaces rx_* prefix with rx.* extensions. (Inspired by .lazy collections API). We've tried annotate deprecated APIs with @available(*, deprecated, renamed: "new method") but trivial replacements aren't annotated.
    • rx_text -> rx.text
    • rx_tap -> rx.tap
    • rx_date -> rx.date
    • ...
  • Deprecates subscribeNext, subscribeError, subscribeCompleted in favor of subscribe(onNext:onError:onCompleted:onDisposed) (The downsides of old extensions were inconsistencies with Swift API guidelines. They also weren't expressing that calling them actually performes additional subscriptions and thus potentially additional work beside just registering observers).
  • Deprecates doOnNext, doOnCompleted, doOnError in favor of do(onNext:onCompleted:onError:onSubscribe:onDisposed:)
  • Adds onSubscribe and onDisposed to do operator.
  • Adds namespace for immutable disposables called Disposables
    • Deprecates AnonymousDisposable in favor of Disposables.create(with:)
    • Deprecates NopDisposable in favor of Disposables.create()
    • Deprecates BinaryDisposable in favor of Disposables.create(_:_:)
  • Deprecates toObservable in favor of Observable.from().
  • Replaces old javascript automation tests with Swift UI Tests.
  • ...

Anomalies

  • There is a problem using UISwitch extensions because it seems that a bug exists in UIKit that causes all UISwitch instances to leak. #842

Dracarys

04 Jul 05:57
Compare
Choose a tag to compare

Features

  • Adds Swift 2.3 compatibility.
  • Adds UIViewController.rx_title extension.
  • Adds UIScrollView.rx_scrollEnabled extension.
  • Resolve static analysis issues relating to non-use of an assigned value, and potential null dereferences in RxCocoa's Objective-C classes.
  • Changes forwardDelegate property type on DelegateProxy from assign to weak.
  • Simplifies UITable/CollectionView data source generic parameters.
  • Adds simple usage examples to UITable/CollectionView data source extensions.
  • Documents UITable/CollectionView data source extensions memory management and adds unit tests to cover that documentation.
  • Adds .jazzy.yml
  • Adds UITabBar extensions and delegate proxy wrapper
    • rx_didSelectItem
    • rx_willBeginCustomizing
    • rx_didBeginCustomizing
    • rx_willEndCustomizing
    • rx_didEndCustomizing
  • Adds UIPickerView delegate proxy and extensions:
    • rx_itemSelected
  • Adds UIAlertAction.rx_enabled extension.
  • Adds UIButton.rx_title(controlState: UIControlState = .Normal) extension.
  • Adds UIPageControl.rx_currentPage extension.
  • Adds hasObservers property to *Subject.

Anomalies

  • Fixes problem with UITable/CollectionView releasing of data sources when result subscription disposable wasn't retained.
  • Fixes all Xcode analyzer warnings

Malmö

15 May 18:47
Compare
Choose a tag to compare

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. #649
  • Removes distinctUntilChanged from control extensions. #626

Wb / m²

11 Apr 09:30
Compare
Choose a tag to compare

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.

ETH (Xcode 7.3 / Swift 2.2)

22 Mar 22:04
Compare
Choose a tag to compare

Features

  • Xcode 7.3 / Swift 2.2 support