Swift isn't a reactive programming language so we need a bit of help to make it reactive. A handful of libraries and frameworks are available to build reactive applications. The most commonly used solutions are RxSwift, ReactiveCocoa, and Apple's Combine framework. RxSwift is by far the most commonly used library at the time of recording.
ReactiveX
RxSwift is a ReactiveX extension for the Swift programming language. This brings up the question What is ReactiveX? ReactiveX, or Rx for short, is a cross platform API for reactive programming. It defines an API for asynchronous programming with observable sequences. Don't worry if you don't understand what that means. We cover these concepts many more times in this series.

ReactiveX has been around for many years and ReactiveX extensions are available for most of the popular programming languages, including C#, Java, and JavaScript.
RxSwift
RxSwift is Swift's implementation of the ReactiveX specification. This means that the API defined by ReactiveX is implemented using the Swift API guidelines. Everything looks and feels native, including the names of the operators. But it doesn't stop here.
RxCocoa
The only dependency of RxSwift is the Swift programming language. It doesn't rely on any of Apple's Cocoa frameworks, such as UIKit and AppKit. You can use RxSwift in any Swift project.
This is great, but it can be limiting if you want to adopt RxSwift in a Cocoa project. The RxCocoa library makes the Cocoa frameworks more reactive. RxCocoa depends on RxSwift and reactifies the Cocoa frameworks by adding bindings and other features that target the Cocoa frameworks, including UIKit and AppKit.
If you're developing for iOS, tvOS, macOS, or watchOS, then you should take a look at RxCocoa. In this series, we use RxCocoa quite a bit. Once you understand how RxSwift works, RxCocoa shouldn't be a problem to pick up.