Swiftpack.co - Package - ReactiveX/RxSwift

Miss Electric Eel 2016 RxSwift: ReactiveX for Swift

Travis CI platforms pod Carthage compatible Swift Package Manager compatible

Rx is a generic abstraction of computation expressed through Observable<Element> interface.

This is a Swift version of Rx.

It tries to port as many concepts from the original version as possible, but some concepts were adapted for more pleasant and performant integration with iOS/macOS environment.

Cross platform documentation can be found on ReactiveX.io.

Like the original Rx, its intention is to enable easy composition of asynchronous operations and event/data streams.

KVO observing, async operations and streams are all unified under abstraction of sequence. This is the reason why Rx is so simple, elegant and powerful.

I came here because I want to ...

... understand
... install
... hack around
... interact
... compare
... understand the structure

RxSwift comprises five separate components depending on eachother in the following way:

┌──────────────┐    ┌──────────────┐
│   RxCocoa    ├────▶   RxRelay    │
└───────┬──────┘    └──────┬───────┘
        │                  │        
┌───────▼──────────────────▼───────┐
│             RxSwift              │
└───────▲──────────────────▲───────┘
        │                  │        
┌───────┴──────┐    ┌──────┴───────┐
│    RxTest    │    │  RxBlocking  │
└──────────────┘    └──────────────┘
  • RxSwift: The core of RxSwift, providing the Rx standard as (mostly) defined by ReactiveX. It has no other dependencies.
  • RxCocoa: Provides Cocoa-specific capabilities for general iOS/macOS/watchOS & tvOS app development, such as Binders, Traits, and much more. It depends on both RxSwift and RxRelay.
  • RxRelay: Provides PublishRelay and BehaviorRelay, two simple wrappers around Subjects. It depends on RxSwift.
  • RxTest and RxBlocking: Provides testing capabilities for Rx-based systems. It depends on RxSwift.
... find compatible
... see the broader vision
  • Does this exist for Android? RxJava
  • Where is all of this going, what is the future, what about reactive architectures, how do you design entire apps this way? Cycle.js - this is javascript, but RxJS is javascript version of Rx.

Usage

Here's an example In Action
Define search for GitHub repositories ...
let searchResults = searchBar.rx.text.orEmpty
    .throttle(.milliseconds(300), scheduler: MainScheduler.instance)
    .distinctUntilChanged()
    .flatMapLatest { query -> Observable<[Repository]> in
        if query.isEmpty {
            return .just([])
        }
        return searchGitHub(query)
            .catchErrorJustReturn([])
    }
    .observeOn(MainScheduler.instance)
... then bind the results to your tableview
searchResults
    .bind(to: tableView.rx.items(cellIdentifier: "Cell")) {
        (index, repository: Repository, cell) in
        cell.textLabel?.text = repository.name
        cell.detailTextLabel?.text = repository.url
    }
    .disposed(by: disposeBag)

Requirements

  • Xcode 10.2
  • Swift 5.0

For Xcode 10.1 and below, use RxSwift 4.5.

Installation

Rx doesn't contain any external dependencies.

These are currently the supported options:

Manual

Open Rx.xcworkspace, choose RxExample and hit run. This method will build everything and run the sample app

CocoaPods

# Podfile
use_frameworks!

target 'YOUR_TARGET_NAME' do
    pod 'RxSwift', '~> 5'
    pod 'RxCocoa', '~> 5'
end

# RxTest and RxBlocking make the most sense in the context of unit/integration tests
target 'YOUR_TESTING_TARGET' do
    pod 'RxBlocking', '~> 5'
    pod 'RxTest', '~> 5'
end

Replace YOUR_TARGET_NAME and then, in the Podfile directory, type:

$ pod install

Carthage

Officially supported: Carthage 0.33 and up.

Add this to Cartfile

github "ReactiveX/RxSwift" ~> 5.0
$ carthage update

Carthage as a Static Library

Carthage defaults to building RxSwift as a Dynamic Library.

If you wish to build RxSwift as a Static Library using Carthage you may use the script below to manually modify the framework type before building with Carthage:

carthage update RxSwift --platform iOS --no-build
sed -i -e 's/MACH_O_TYPE = mh_dylib/MACH_O_TYPE = staticlib/g' Carthage/Checkouts/RxSwift/Rx.xcodeproj/project.pbxproj
carthage build RxSwift --platform iOS

Swift Package Manager

Create a Package.swift file.

// swift-tools-version:5.0

import PackageDescription

let package = Package(
  name: "RxTestProject",
  dependencies: [
    .package(url: "https://github.com/ReactiveX/RxSwift.git", from: "5.0.0")
  ],
  targets: [
    .target(name: "RxTestProject", dependencies: ["RxSwift", "RxCocoa"])
  ]
)
$ swift build

To build or test a module with RxTest dependency, set TEST=1.

$ TEST=1 swift test

Manually using git submodules

  • Add RxSwift as a submodule
$ git submodule add git@github.com:ReactiveX/RxSwift.git
  • Drag Rx.xcodeproj into Project Navigator
  • Go to Project > Targets > Build Phases > Link Binary With Libraries, click + and select RxSwift-[Platform] and RxCocoa-[Platform] targets

References

Github

link
Stars: 17849

Dependencies

Used By

Total: 0

Releases

ShaiTheBravest - 2019-04-30 13:31:30

  • Reverts Carthage integration from using static to dynamic libraries. #1960

NOTE: This release is only relevant to Carthage users (#1960), there are no code changes between RxSwift 5.0.0 and 5.0.1.

ShaiTheBrave - 2019-04-29 19:40:13

RxSwift 5 is a mostly source-compatible release targeting the Swift 5 compiler.

Xcode 10.2 is the minimum supported version (or Swift 5 on Linux).

If you're using Xcode 10.1 and below, please use RxSwift 4.5.

  • Relays have been moved to a separate framework - RxRelay, and can be used without RxCocoa. #1924
  • TimeInterval has been deprecated in favor of DispatchTimeInterval. For example - throttle(1.2) would change to throttle(.milliseconds(1200)), while throttle(3) would change to throttle(.seconds(3)). #1472
  • Variable is now entirely deprecated. #1922
  • do now provides additional "after" closures. For example, do(onNext:) and do(afterNext:). #1898
  • bind(to:) now supports multiple observers (e.g. bind(to: observer1, observer2)). #1702
  • Changes the return type of ObservableType.toArray to Single. #1923
  • Adds compactMap. #1925
  • Deprecate Completable.merge in favor of Completable.zip. #1929 #1931
  • RxSwift can be built as a Static Library using Carthage 0.33 and up. #1940

Anomalies

  • SubjectType.SubjectObserverType has been renamed to SubjectType.Observer. #1950
  • The S associated type has been renamed to Subject where applicable. #1950
  • The S generic constraint on SharedSequence has been renamed to SharingStrategy. #1951
  • The E associated type on ObservableConvertibleType and ObserverType have been renamed to Element. #1945
  • The C and S associated types have been renamed to Collection and Sequence accordingly. #1949
  • Renamed ElementType associatedtype to Element. #1945
  • Renamed TraitType associatedtype to Trait. #1945
  • Make RxMutableBox supported on Linux in Swift 5. #1917
  • Fix incorrect assignment to Thread.threadDictionary on Linux. #1912
  • combineLatest of an empty array now completes immediately. #1879
  • Add resultsSelector missing closure labels for some overloads of combineLatest & zip.

[4,5] - 2019-04-01 20:06:31

  • Compatibility with Xcode 10.2.
  • Adds missing UISearchBar.setDelegate().

Atomic.2 - 2019-03-10 22:47:41

4.4.2

  • Adds UIView.rx.backgroundColor Binder. #1888

Anomalies

  • Fix multiple disposes on ScheduledDisposables. #1892
  • Fix DelegateProxy main thread validation. #1882
  • Bring back the first operator to ObservableType. #1886

Atomic.1 - 2019-02-09 16:59:29

  • Adds takeUntil(_ behavior:predicate:).

Anomalies

  • Fixes problems with RxAtomic and thread sanitizer. #1853
  • Fixes problem with passing 0 count to Observable.range. #1870
  • Fixes Swift 5.0 warnings. #1859
  • Fixes problem with RxCocoa and DISABLE_SWIZZLING flag. #1805
  • Internal cleanups:
    • Unused code deletions.
    • Adds SwiftLint.
    • Removes legacy Swift 3.0 conditional compilation flags.

Atomic - 2018-11-02 08:11:57

This relase introduces new framework RxAtomic that enables using C11 atomic primities in RxSwift as a replacement for deprecated OSAtomic* functions. Carthage users will probably need to include this framework manually.

  • Updates deprecated OSAtomic* primitives to use C11 atomic primitives.
  • Adds Event, SingleEvent, MaybeEvent and Recorded conditional conformance to Equatable where their Element is equatable on RXTest for clients that are using Swift >= 4.1.
  • Adds string to NSTextView.
  • Consolidates per platform frameworks to multi-platform frameworks.
  • Xcode 10.1 compatible.

Anomalies

  • Fixes problem with canceling events scheduled on serial scheduler through observeOn operator. #1778
  • Fixes problem with UISearchBar.text property not triggering update when cancel button is tapped. #1714
  • Updates watchos minimum target to 3.0. #1752

RotWeiß.1 - 2018-09-21 07:09:00

Anomalies

  • Fixes issues with CocoaPods and Swift 4.2 version.

RotWeiß - 2018-09-16 18:27:20

  • Compatibility with Xcode 10.0
  • Adds new insert extension to collect and add multiple disposables to DisposeBag.
  • Adds scan(into:accumulator:).
  • Adds queuePriority parameter (defaults to .normal) to OperationQueueScheduler.
  • Performance enhancement reduces Bag dispatch inline code size by 12%.
  • Adds customCaptureSubscriptionCallstack hook to allow custom subscription callstacks to be generated.
  • Remove usage of Variable from Playground, Example projects and Tests.
  • Add XCTAssertRecordedElements to XCTest+Rx.

Anomalies

  • Fix build issues on new arm64_32 architecture (watchOS 5).
  • Removes string interpolation warning.

Zürich - 2018-06-08 20:08:10

  • Adds Smart Key Path subscripting to create a binder for property of object.
  • Adds UICollectionView extensions:
    • prefetchItems
    • cancelPrefetchingForItems
  • Adds UITableView extensions:
    • prefetchRows
    • cancelPrefetchingForRows
  • Fixes various spelling mistakes and missing parameters.
  • Adds UISegmentedControlExtensions:
    • titleForSegment(at:)
    • imageForSegment(at:)
  • Adds Maybe.ifEmpty(default:) operator.
  • Adds Maybe.ifEmpty(switchTo:) operator.
  • Adds Maybe.catchErrorJustReturn(_:) operator.
  • Add Single.flatMapMaybe(_:) operator.
  • Add Single.flatMapCompletable(_:) operator.
  • Add Single.zip(_:) operator.
  • Add Single.catchErrorJustReturn(_:) operator.
  • Add Single.asMaybe(_:) operator.
  • Add Single.asCompletable(_:) operator.

Anomalies

  • Lower macOS Deployment Target to 10.9
  • Deprecates UISegmentedControl.enabled(forSegmentAt:) in favor of UISegmentedControl.enabledForSegment(at:).

Spread.2 - 2018-02-04 15:50:06

  • Adds deprecation warner.

Anomalies

  • Fixes ambiguity issue with Single.do(onNext:onError:onSubscribe:onSubscribed:onDispose:) and Single.do(onSuccess:onError:onSubscribe:onSubscribed:onDispose:).

Spread.1 - 2018-01-09 21:21:57

Anomalies

  • Fixes compilation issue with Xcode 9.1.
  • Deprecates Single.do(onNext:onError:onSubscribe:onSubscribed:onDispose:) in favor of Single.do(onSuccess:onError:onSubscribe:onSubscribed:onDispose:).

Spread - 2017-12-27 23:20:57

  • Adds Recorded<Event<T>> array factory method in RxTest. #1531
  • Replaces global functions next, error, completed with Recorded.next, Recorded.error, Recorded.completed in RxTest. #1510
  • Removes AnyObject constraint from Delegate parameter on DelegateProxy. #1442
  • Adds ObservableType.bind(to:) overloads for PublishRelay and BehaviorRelay.
  • Adds ControlEvent.asSignal().
  • Adds UISegmentedControl.rx.enabled(forSegmentAt:) extension.
  • Adds UIStepper.rx.stepValue extension.
  • Adds error handling Hook to Single, Maybe and Completable. #1532
  • Adds recordCallStackOnError to improve performance of DEBUG configuration.

Anomalies

  • Changes return value of blocking version of single operator from E? to E. #1525
  • Removes deprecation attribute from asSharedSequence.

Mortred - 2017-10-17 22:44:31

  • Adds global Hooks and implements error handling hook.
  • Deprecates asSharedSequence extensions on ObservableType.
  • Publicly exposes controlProperty.

Anomalies

  • Changes Observable extensions to ObservableType extensions.
  • Changes UITableView.didUpdateFocusInContextWithAnimationCoordinator extension argument to UITableViewFocusUpdateContext.
  • Changes access modifier of DelegateProxy.setForwardToDelegate to open.

37 - 2017-10-08 17:28:27

  • Deprecates image(transitionType:) in favor of image.
  • Changes return type of ignoreElements to Completable. #1436
  • Removes warning of sequence completion from Binder. #1431
  • Deprecates Variable in favor of BehaviorRelay.

MoM - 2017-10-01 19:14:45

  • Adds attributedText to UITextField. #1249
  • Adds attributedText to UITextView. #1249
  • Deprecates shareReplayLatestWhileConnected and shareReplay in favor of share(replay:scope:). #1430
  • Changes publish, replay, replayAll to clear state in case of sequence termination to be more consistent with other Rx implementations and enable retries. #1430
  • Replaces share with default implementation of share(replay:scope:). #1430
  • Adds HasDelegate and HasDataSource protocols.
  • Updates package version to v4 format. #1418

Anomalies

  • Adds deprecated warnings to API parts that were missing it. #1427
  • Improves memory handling in isScheduleRequiredKey. #1428
  • Removes pre-release identifier from bundle version to enable TestFlight submissions. #1424
  • Removes code coverage to enable TestFlight submissions. #1423
  • Fixes Xcode warnings. #1421

Shavasana - 2017-09-18 00:20:28

  • Adds materialize() operator for RxBlocking's BlockingObservable. #1383
  • Adds first operator to ObservableType.
  • Deprecates UIBindingObserver in favor of Binder. #1411
  • Adds another specialization of SharedSequence called Signal.
  • Refactors DelegateProxy to be type safe.
  • Changes nested SharedSequence strategy to use inner sharing strategy for result.

Anomalies

  • Call controlTextDidChange(…) as an optional method. #1406
  • Fixed issue with NSControl.rx.value regarding multiple observers. #1399
  • Removes useless extensions from PrimitiveSequence. #1248

Enumerated - 2017-08-20 19:17:49

  • Merges 3.6.1 changes.
  • Adds UIScrollView.willEndDragging extension. #1365
  • Adds enumerated operator (deprecates skipWhileWithIndex, takeWhileWithIndex, flatMapWithIndex, mapWithIndex).

Anomalies

  • Fixes gesture recognizer extensions crash. #1382
  • Adds onSubscribed parameter to SharedSequence extensions.

Polgar - 2017-07-31 07:23:45

  • Swift 4.0 compatibility
  • Changes delegate proxy to use plugin architecture.

Anomalies

  • Fixes public interface leakage of NSKeyValueObservingOptions. #1164

Oxygen.1 - 2017-07-21 11:43:37

Anomalies

  • Fixes compilation issue with Xcode 9b3. #1341
  • Fixes issues with andThen operator. #1347
  • Improves locking behavior of merge and switch operators. #1344

Oxygen - 2017-07-17 17:50:40

  • Adds timeout operator to PrimitiveSequence (Single, Maybe, Observable)
  • Adds delay operator to SharedSequence.
  • Adds andThen operator to Completeable.
  • Adds concat operator to Completeable.
  • Adds RxPickerViewDataSourceType
  • Adds UIPickerView extensions:
    • modelSelected
    • itemTitles
    • itemAttributedTitles
    • items
  • Adds UITableView extensions:
    • modelDeleted
  • Adds UICollectionView extensions:
    • itemHighlighted
    • itemUnhighlighted
    • willDisplayCell
    • didEndDisplayingCell
    • willDisplaySupplementaryView
    • didEndDisplayingSupplementaryView
  • Adds UIScrollView extensions:
    • willBeginDecelerating
    • willBeginDragging
    • willBeginZooming
    • didEndZooming

Anomalies

  • Fixes deadlock anomaly in shareReplayWhileLatest. #1323
  • Removes duplicated events swallowing in NSControl on macOS.

Mango - 2017-05-30 22:36:27

  • Adds from operator on "SharedSequence"
  • Adds merge operator on "Completable"
  • Adds using operator on "PrimitiveSequence"
  • Adds concatMap operator.
  • Adds share(replay:scope:) operator.
  • Adds multicast(makeSubject:) operator.
  • Adds UIButton.image(for:) extension.
  • Adds UIButton.backgroundImage(for:) extension.
  • fixes typos

Anomalies

  • Improves reentrancy and synchronization checks.
  • Issues with share() and shareReplay(_:). #1111
  • .share() inconsistent in behavior. #1242
  • Fixes issues with Driver sometimes sending initial element async. #1253

David.1 - 2017-05-01 22:29:42

  • Adds UINavigationController delegate proxy and extensions:
    • willShow
    • didShow
  • Deprecates TestScheduler.start(_:create:) in favor of TestScheduler.start(disposed:create:).
  • Deprecates TestScheduler.start(_:subscribed:disposed:create:) in favor of TestScheduler.start(created:subscribed:disposed:create:).

Anomalies

  • Fixes observable sequence completion in case of empty arrays for combineLatest and zip. #1205
  • Fixes array version of merge operator completing immediately in case one of the observable sequences is empty. #1221
  • Adds RxTest to SPM. #1215
  • Adds tuple version of operator SharedSequence.zip (collection).
  • Adds tuple version of operator SharedSequence.zip.
  • Adds tuple version of operator SharedSequence.combineLatest (collection).
  • Adds tuple version of operator SharedSequence.combineLatest.
  • Adds missing trimOutput parameter to SharedSequence.debug.
  • Makes RxImagePickerDelegateProxy subclass of RxNavigationControllerDelegateProxy.

David - 2017-04-09 22:12:00

  • Xcode 8.3.1 / Swift 3.1 compatibility.
  • Add subscription closures for Single, Maybe and Completable (onSuccess, onError, onCompleted).
  • Renames Units as Traits and updates the documentation for Single, Completable & Maybe.
  • Deprecates bindTo in favor of bind(to:).
  • Adds materialize operator
  • Adds dematerialize operator
  • Adds latest parameter to SharedSequence.throttle operator.
  • Adds debug operator to PrimitiveSequence.

Anomalies

  • Fixes problem with UICollectionView data source caching and disposal logic. #1154

Hashimoto.1 - 2017-03-14 08:23:27

Anomalies

  • Fixes misspelled Completeable to Completable. #1134

Hashimoto - 2017-03-12 23:15:15

  • Adds Single, Maybe, Completable units inspired by RxJava (operators):
    • create
    • deferred
    • just
    • error
    • never
    • delaySubscription
    • delay
    • do
    • filter
    • map
    • flatMap
    • observeOn
    • subscribeOn
    • catchError
    • retry
    • retryWhen
    • zip
  • Adds asSingle() operator on ObservableType.
  • Adds asMaybe() operator on ObservableType.
  • Adds asCompleteable() operator on ObservableType.
  • Adds variadic combineLatest and zip overloads without result selector (defaults to tuple).
  • Adds array combineLatest and zip overloads with result selector (defaults to array of elements)
  • Adds optimized synchronous merge operator to observable sequence (variadic, array, collection). #579
  • Adds optimized synchronous merge operator to shared sequence (variadic, array, collection).
  • Adds AsyncSubject implementation.
  • Adds XCTAssertEqual overloads to RxTest.
  • Adds countDownDuration to UIDatePicker.
  • Adds attributedTitle(for:) to UIButton.
  • Adds onSubscribed to do operator.
  • Adds isUserInteractionEnabled to UIView.

Anomalies

  • Improves DelegateProxy responds(to:) selector logic to only respond to used selectors. #1081, #1087
  • Deprecates from() in favor of from(optional:) to avoid issues with implicit conversions to optional.
  • Fixes thread sanitizer reporting issues with merge operator. #1063
  • Calls collectionViewLayout.invalidateLayout() after reloadData() as a workaround for iOS 10 bug.
  • Changes UICollectionView.rx.didUpdateFocusInContextWithAnimationCoordinator context parameter type to UICollectionViewFocusUpdateContext

Naldi - 2017-01-31 14:16:46

  • Adds groupBy operator
  • Adds ifEmpty(switchTo:) operator
  • Adds ifEmpty(default:) operator
  • Adds Disposable extension disposed(by:) equivalent to addDisposableTo that is meant to replace it in future 4.0 version.
  • Consolidates atomic operations on Linux and Darwin platform.
  • Adds DEBUG mode concurrent asserts for Variable and Observable.create.
  • Adds DEBUG mode concurrent asserts for Sink.
  • Small performance optimizations for subjects.
  • Adaptations for Xcode 8.3 beta.
  • Adds numberOfPages to UIPageControl.
  • Adds additional resources cleanup unit tests for cases where operators are used without DisposeBags.
  • Chores:
    • Adds final keyword wherever applicable.
    • Remove unnecessary import Foundation statements.
    • Examples cleanup.

Anomalies

  • Improves behavior of shareReplayWhileConnected by making sure that events emitted after disconnect are ignored even in case of fast reconnect.
  • Fixes a couple of operators that were not cleaning up resources on terminal events when used without DisposeBags.
  • Fixes delegate proxy interaction with subclassing of UISearchController.
  • Fixes delegate proxy interaction with subclassing of NSTextStorage.
  • Fixes delegate proxy interaction with subclassing of UIWebView.
  • Fixes delegate proxy interaction with subclassing of UIPickerView.

Galois - 2016-12-28 19:58:49

  • Adds changed property to ControlProperty that returns ControlEvent of user generated changes.
    • textField.text.changed.map { "User changed text to \($0)" }
  • Adds optional overloads for from operator. let num: Int? = 3; let sequence = Observable.from(num)
  • Improves UIBindingObserver by tolerating binding from non main dispatch queue. In case binding is attempted from non main dispatch queue it will be automagically dispathed async to main queue.
  • Makes control property naming consistent for UIDatePicker, UISearchBar, UISegmentedControl, UISwitch, UITextField, UITextView (value property + value alias name).
  • Adds missing extension to UIScrollView.
    • didScroll
    • didZoom
    • didEndDecelerating
    • didEndDragging
    • didScrollToTop
  • Renames refreshing to isRefreshing.
  • adds UIWebView extensions:
    • didStartLoad
    • didFinishLoad
    • didFailLoad
  • Adds UITabBarController extensions
    • willBeginCustomizing
    • willEndCustomizing
    • didEndCustomizing
    • didSelect
  • Adds UIBarButtonItem extensions
    • title
  • Performance optimizations
  • Improves data source behavior by clearing data source proxy when forwarding delegate is nil.

Anomalies

  • Fixes anomaly caused by UITableView invalid state caching of previous data source even after the change. Binding of reactive data source now triggers layoutIfNeeded that invalidates that internal cached state.
  • Fixes issue with race in AnyRecursiveScheduler. #995

- 2016-11-20 21:13:47

Anomalies

  • Fixes issues with locking strategy for subjects. #936
  • Improves behavior of data sources on iOS 10. #999

Graham - 2016-11-06 20:33:01

Anomalies

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

Aenea - 2016-10-23 21:21:36

  • 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.