Before we refactor the
AddLocationViewModel class, I would like to take a few minutes to explain my motivation for using RxSwift and RxCocoa. There are several reasons.
It's a Library
What I like about ReactiveX is that it doesn't force you to adopt a particular architecture. You can use Rx without using the Model-View-ViewModel pattern. You should see Rx as a tool, not an architecture.
RxSwift has been around for quite a while. It is a robust implementation of the ReactiveX API and it is a joy to use it. The more you use RxSwift, the more you experience the power and versatility of ReactiveX.
The RxSwift team has invested heavily in testability, making it easy to test reactive code. Later in this series, we will test the reactive code we write. That will show you how important testability is.
Powerful and Versatile
While RxSwift has no relation to the Cocoa APIs, there is an extension for Cocoa, RxCocoa. Most of the UIKit components you use day in day out are reactified. In the next episodes, you find out what that means and what the benefits are.
The combination of RxSwift and RxCocoa is amazing. If you are new to RxSwift and RxCocoa, then I encourage you to give it a try. I hope the next few episodes can convince you to take a closer look at RxSwift and RxCocoa.