Update: GeneralDataLoadingViewModel now can handle state changes and result of data source. Previously it was possible only in view controller.
Add: GeneralDataLoadingHandler protocol, that defines methods for common data loading states handling.
Add: resultObservable and resultDriver properties to GeneralDataLoadingViewModel.
Add: hidesWhenStopped option to SpinnerView, so you can stop animation without hiding image inside it.
Update: Migrate to Swift 4.2 & Xcode 10. Update dependencies.
Add: TableDirector methods for rows insertion and removal without reload a whole table.
Add: UIImageView binder for disclosure indicator rotation.
Add: UIView.addSubviews(:) methods with variable number of arguments and array of views.
Add: PlaceholderConfigurable that defines attributes and methods for view with placeholder and regular state.
Add: ContentLoadingViewModel enum that describes possible PlaceholderConfigurable view states.
Add: Completable.deferredJust(:) static method.
Add: ViewTextConfigurable protocol. Conform UILabel, UITextField and UIButton to this protocol.
Add: BaseTextAttributes with base text appearance attributes.
Update: ViewText.string now uses BaseTextAttributes instead of separate properties.
Add: BasePlaceholderView and BasePlaceholderViewModel classes used to create your own placeholder.
Add: TableKitViewModel protocol that adds convenient extensions to cell view models that implements it.