RxSwift is the Swift member of the ReactiveX family, the same reactive programming model available in many other languages, such as RxJava and RxJS. It treats events, user input, and network responses as observable sequences that you transform and combine with operators.

RxSwift came years before Apple’s Combine, and it’s still in many production apps. Even if you start new projects with Combine or Swift concurrency, knowing RxSwift will help you work with existing codebases, and the concepts transfer almost one to one.

Each article measures the behavior it describes and ends with an exercise. The examples use RxSwift 6.10.2 in Swift 6 language mode and were compiled and run with the Swift 6.4 toolchain from Xcode 27.1 on macOS 26, so they also show where RxSwift, a library compiled without strict concurrency checking, meets Swift 6’s actor isolation: which closures crash when a chain delivers on a background thread, and how to write chains that do not. Time-based behavior is measured on RxTest’s virtual clock, set up in the filtering article; the RxCocoa and MVVM examples ran against real UIKit controls in the iOS simulator; and the testing article is a Swift package run with swift test.

Article available Coming soon

1. Observables

2. Subjects and Relays

3. Traits

Driver and Signal

Binding an observable to the UI has three requirements that ordinary observables do not meet. The UI must be updated on the...

4. Operators

5. Errors and Threading

6. RxSwift in Apps

MVVM with RxSwift

Model-View-ViewModel is the architecture most RxSwift apps use, and RxSwift is a large part of why. The view model holds the screen’s...

Up next

More Swift Topics

This guide grows with the blog: new articles are linked here as soon as they're published. Missing something? Let me know.

← Back to all roadmaps