Shape Shape point chapter-list Group Group Group Group Group Shape Copy 12 Shape Shape Copy 3 Shape Shape dropdown editor editor Combined Shape grid Shape Copy 4 Shape Copy 7 Shape language language Shape megaphone paperback Shape platform noun_419259-2 copy play-icon Group BS-Question-Rounded-Circle quotes noun_610406 stacked-books-1 stacked-books-2 Group Group Group Group Group Group Group Group Group Path

RxSwift: Reactive Programming with Swift

$49.99 $59.99 4.5/5 25 reviews · Write a Review
  • Platform iOS 13
  • Language Swift 5.1
  • Editor Xcode 11

Leverage the power of RxSwift in your reactive apps!

In this RxSwift book, you'll learn how to integrate RxSwift into real-world iOS apps.

Developer Guide


For Advanced Developers

Leverage the power of RxSwift in your reactive apps!

This book is for iOS developers who already feel comfortable with iOS and Swift, and want to dive deep into development with RxSwift.

Start with an introduction to the reactive programming paradigm; learn about observers and observables, filtering and transforming operators, and how to work with the UI, and finish off by building a fully-featured app in RxSwift.

Table of Contents

Section I: Getting Started with RxSwift


Hello, RxSwift!

Learn about the reactive programming paradigm and what RxSwift can bring to your app.



Now that you’re ready to use RxSwift and have learned some of the basic concepts, it’s time to play around with observables.



In this chapter, you’re going to learn about the different types of subjects in RxSwift, see how to work with each one and why you might choose one over another based on some common use cases.


Observables & Subjects in Practice

In this chapter, you’ll use RxSwift and your new observable super-powers to create an app that lets users to create nice photo collages — the reactive way.

Section II: Operators & Best Practices


Filtering Operators

This chapter will teach you about RxSwift’s filtering operators that you can use to apply conditional constraints to “.next” events, so that the subscriber only receives the elements it wants to deal with.


Filtering Operators in Practice

In the previous chapter, you began your introduction to the functional aspect of RxSwift. In this chapter, you’re going to try using the filtering operators in a real-life app.


Transforming Operators

In this chapter, you’re going to learn about one of the most important categories of operators in RxSwift: transforming operators.


Transforming Operators in Practice

In this chapter, you’ll take an existing app and add RxSwift transforming operators as you learn more about map and flatMap, and in which situations you should use them in your code.


Combining Operators

This chapter will show you several different ways to assemble sequences, and how to combine the data within each sequence.


Combining Operators in Practice

You'll get an opportunity to try some of the most powerful RxSwift operators. You'll learn to solve problems similar to those you'll face in your own applications.


Time-Based Operators

Managing the time dimension of your sequences is easy and straightforward. To learn about time-based operators, you'll practice with an animated playground that visually demonstrates how data flows over time.

Section III: iOS Apps with RxCocoa


Beginning RxCocoa

In this chapter you’ll be introduced to another framework: RxCocoa. RxCocoa works on all platforms and targets the specific UI needs of iOS, watchOS, tvOS and macOS.


Intermediate RxCocoa

Following on from Chapter 12, you’ll learn about some advanced RxCocoa integrations and how to create custom wrappers around existing UIKit components.

Section IV: Intermediate RxSwift / RxCocoa


Error Handling in Practice

Even the best RxSwift developers can’t avoid encountering errors. You’ll learn how to deal with errors, how to manage error recovery through retries, or just surrender yourself to the universe and letting the errors go.


Intro to Schedulers

This chapter will cover the beauty behind schedulers, where you’ll learn why the Rx abstraction is so powerful and why working with asynchronous programming is far less less painful than using locks or queues.


Testing with RxTest

For all the reasons why you started reading this book and are excited to begin using RxSwift in your app projects, RxTest (and RxBlocking) may very soon have you excited to write tests against your RxSwift code, too.


Creating Custom Reactive Extensions

In this chapter, you will create an extension to NSURLSession to manage the communication with an endpoint, as well as managing the cache and other things which are commonly part of a regular application.

Section V: RxSwift Community Cookbook


Table & Collection Views

RxSwift not only comes with the tools to perfectly integrate observable sequences with tables and collections views, but also reduces the amount of boilerplate code by quite a lot.



The RxSwift framework offers a large choice of operators, which can be overwhelming for beginners. But when you start using a lot of Rx functionality in your applications, you may quickly find yourself needing even _more_ operators to solve cases not covered by the core framework. While creating your own operators is easy, you may want to rely on existing, well-tested code that guarantees you’ll always get the results you want. You'll learn about some of them in this chapter.



Action exposes observables for errors, the current execution status, an observable of each work observable, guarantees that no new work starts when the previous has not completed, and generally is such a cool class that you don’t want to miss it!



Gesture processing is a good candidate for reactive extensions. Gestures can be viewed as a stream of events, either discrete or continuous. Working with gestures normally involves using the target-action pattern, where you set some object as the gesture target and create a function to receive updates.


Debugging with RxTimelane - New

Pro users need powerful debugging tools; in this chapter, you are going to learn the basics of using RxTimelane to inspect and debug your RxSwift code in the Xcode’s Instruments app.



One of the basic needs of modern mobile applications is the ability to query remote resources. RxAlamofire adds an idiomatic Rx layer to Alamofire, making it straightforward to integrate into your observable workflow.

Section VI: Putting It All Together


MVVM with RxSwift

RxSwift is such a big topic that this book hasn’t covered application architecture in any detail yet. And this is mostly because RxSwift doesn't enforce any particular architecture upon your app. However, since RxSwift and MVVM play very nicely together, this chapter is dedicated to the discussion of that specific architecture pattern.


Building a Complete RxSwift App

To conclude this book, you’ll architect and code a small RxSwift application. The goal is not to use Rx “at all costs”, but rather to make design decisions that lead toa clean architecture with stable, predictable and modular behavior. The application is simple by design, to clearly present ideas you can use to architect your own applications.

Meet the Team

Customer reviews

RxSwift: Reactive Programming with Swift

The RxSwift book was just the thing I needed to get started with Rx. Thanks!


Awesome! 😍 Even though I've already read this book I still go back to some random chapters everyday.


If you want to learn Reactive Programming in Swift, then this book is the only game in town. Clearly, the RW authors know the Rx programming paradigm inside-out and upside-down.


Average Rating

4.5 /5

Leave a review for this product

25 reviews

RxSwift: Reactive Programming with Swift

Leverage the power of RxSwift in your reactive apps!

In this RxSwift book, you'll learn how to integrate RxSwift into real-world iOS apps.