Mastering MVVM With Swift
Before we refactor the
AddLocationViewViewModel class, I'd 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 and it's a robust implementation of the ReactiveX API. It's fantastic to use and the more you use it 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. In a later episode, we test the reactive code we write and that'll show you how important this 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 how that works.
The combination of RxSwift and RxCocoa is amazing. If you're 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.