Rxviewmodel

ReactiveViewModel-esque using RxSwift
Alternatives To Rxviewmodel
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Rxdatasources2,932
4498 months ago33January 02, 202176mitSwift
UITableView and UICollectionView Data Sources for RxSwift (sections, animated updates, editing ...)
Rxrealm1,101
1289 months ago34January 19, 20227mitSwift
RxSwift extension for RealmSwift's types
Iossampleapp666
2 months agomitSwift
Sample iOS app demonstrating Coordinators, Dependency Injection, MVVM, Binding
Moya Objectmapper446
943 years ago28January 26, 202011mitSwift
ObjectMapper bindings for Moya and RxSwift
Rxviewmodel370
93 years ago24October 31, 20179mitSwift
ReactiveViewModel-esque using RxSwift
Rxreachability273
89 months ago5October 22, 2018mitSwift
RxSwift bindings for Reachability
Rxpermission234
26 years ago5June 26, 2018mitSwift
RxSwift bindings for Permissions API in iOS.
Moya Modelmapper134
383 years ago27February 18, 20206mitSwift
ModelMapper bindings for Moya.
Moya Swiftyjsonmapper110
108 months ago12September 28, 20222mitSwift
Map objects through SwiftyJSON in combination with Moya
Swift Mvvmc Demo48
3 years ago1mitSwift
Sample iOS application in Swift presenting usage of MVVM-C pattern
Alternatives To Rxviewmodel
Select To Compare


Alternative Project Comparisons
Readme

RxViewModel

codecov.io Build Status Carthage compatible Version License Platform

Model-View-ViewModel

Model-View-ViewModel (MVVM from now on) was created by Microsoft and is defined as follows:

The Model-View-ViewModel (MVVM) pattern is an application pattern that isolates the user interface from the underlying business logic. MVVM belongs to a class of patterns called Separated Presentation. These patterns provide a clean separation between the UI and the rest of the application. This improves the testability of the application and allows the application and its UI to evolve more easily and independently.

The Model-View-ViewModel (MVVM) pattern helps you to cleanly separate the business and presentation logic of your application from its user interface (UI). Maintaining a clean separation between application logic and UI helps to address numerous development and design issues and can make your application much easier to test, maintain, and evolve. It can also greatly improve code re-use opportunities and allows developers and UI designers to more easily collaborate when developing their respective parts of the application.

It basically adds a new «separation layer» to break down the MVC pattern into more manageable pieces.

MVC on Cocoa hast always been a pain because it always translates to «Massive View Controller» due to the need to many delegates that are usually implemented by one controller (e.g. when binding a tableview where you need a delegate for the tableview and also a delegate for the data source, etc).

MVVM separates the View from the Model via an «intermediate» class named ViewModel.

This intermediate class allows the binding of the View and the Model in a more clean and easy manner and also separates some logic as to how/when to load the data removing that responsability from the View and leaving pretty much only the UI specific code in it.

RxViewModel

RxViewModel is the marriage between MVVM and Rx extensions

Long story short: a blatant «imitation» of ReactiveViewModel using RxCocoa.

Since ReactiveViewModel project felt on stagnation and there's not Swift or Swift 2.0 implementation we found the need to implement something like this on Swift.

Given the fact that there's no Swift branch and the lack of interest in the project we felt it was better to give RxSwift/RxCocoa a chance and instead use it as the base for this reactive view model approach.

Usage

To run the example project, clone the repo, and run pod install from the Example directory first.

Installation

CocoaPods

Simply add the following line to your Podfile:

pod "RxViewModel"

And then run:

pod install

Carthage

Just add the following to your Cartfile

github "RxSwiftCommunity/RxViewModel"

And run:

carthage update

Features

Currently RxViewModel supports the following features from ReactiveViewModel (*ALL of them 😉):

  • [x] didBecomeActive
  • [x] didBecomeInactive
  • [x] forwardSignalWhileActive
  • [x] throttleSignalWhileInactive

Author

Esteban Torres

License

RxViewModel is available under the MIT license. See the LICENSE file for more info.

Popular Rxswift Projects
Popular Bindings Projects
Popular Control Flow Categories
Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Swift4
Swift
Swift 3
Bindings
Mvvm
Viewmodel
Tableview
Rxswift