All Projects → RxSwiftCommunity → Rxviewmodel

RxSwiftCommunity / Rxviewmodel

Licence: mit
ReactiveViewModel-esque using RxSwift

Programming Languages

swift
15916 projects

Projects that are alternatives of or similar to Rxviewmodel

MovieInfoMVVMiOS
Movie Info app using TMDb API built with MVVM
Stars: ✭ 38 (-90.31%)
Mutual labels:  rxswift, mvvm
Mvvmsmart
基于谷歌最新AAC架构,MVVM设计模式的一套快速开发库,整合ViewModel+Lifecycles+Navigation+DataBinding+LiveData+Okhttp+Retrofit+RxJava+Glide等主流模块,满足日常开发需求。使用该框架可以快速开发高质量、易维护的Android应用。 项目组会持续维护,请放心使用.欢迎Start并Fork交流.
Stars: ✭ 382 (-2.55%)
Mutual labels:  mvvm, viewmodel
StackOverFlowApi
working with Stack OverFlow Api
Stars: ✭ 24 (-93.88%)
Mutual labels:  mvvm, viewmodel
Jetpack Wanandroid
Kotlin+Jetpack+Coroutines+Retrofit+koin 完成的MVVM 组件化客户端 🔥🔥
Stars: ✭ 353 (-9.95%)
Mutual labels:  mvvm, viewmodel
Rxxmly
RxSwift 实现MVVM高仿喜马拉雅的函数响应式编程
Stars: ✭ 313 (-20.15%)
Mutual labels:  rxswift, mvvm
DeezerClone
This Application using Dagger Hilt, Coroutines, Flow, Jetpack (Room, ViewModel, LiveData),Navigation based on MVVM architecture.
Stars: ✭ 81 (-79.34%)
Mutual labels:  mvvm, viewmodel
Kotlinjetpackinaction
🔥🔥 Kotlin Jetpack zero to hero. 新手到高手
Stars: ✭ 264 (-32.65%)
Mutual labels:  mvvm, viewmodel
ApolloRickAndMorty
just a side project to try out GraphQL and Dagger Hilt with Clean architecture and MVVM
Stars: ✭ 28 (-92.86%)
Mutual labels:  mvvm, viewmodel
Android Viewmodelbinding
A lightweight library aiming to speed up Android app development by leveraging the new Android Data Binding together with the Model-View-ViewModel design pattern.
Stars: ✭ 308 (-21.43%)
Mutual labels:  mvvm, viewmodel
Cleanarchitecturerxswift
Example of Clean Architecture of iOS app using RxSwift
Stars: ✭ 3,256 (+730.61%)
Mutual labels:  rxswift, mvvm
TVToday
iOS TV Shows app with TMDb Api. RxSwift, MVVM, Clean Architecture. Tuist + Swift Package Manager
Stars: ✭ 27 (-93.11%)
Mutual labels:  rxswift, mvvm
Moko Mvvm
Model-View-ViewModel architecture components for mobile (android & ios) Kotlin Multiplatform development
Stars: ✭ 329 (-16.07%)
Mutual labels:  mvvm, viewmodel
GITGET
GitHub의 Contributions를 iOS의 Widget으로 보여주는 App
Stars: ✭ 101 (-74.23%)
Mutual labels:  rxswift, mvvm
mvcvm-swift-file-templates
Swift file templates for boosting mobile app development.
Stars: ✭ 16 (-95.92%)
Mutual labels:  rxswift, mvvm
MGCleanArchitecture
Clean Architecture with RxSwift & MVVM - Templates and Solutions
Stars: ✭ 156 (-60.2%)
Mutual labels:  rxswift, mvvm
modern-android
Modern Android Project Skeleton
Stars: ✭ 17 (-95.66%)
Mutual labels:  mvvm, viewmodel
CoMvvmHelper
android mvvm 基础框架,适合日常快速开发。有需要添加的内容或者发现问题可以提 issue。
Stars: ✭ 26 (-93.37%)
Mutual labels:  mvvm, viewmodel
mvvm-with-rxswift-mentoring-008
Project and source code of the iOS Dev Mentoring #008 - Test-driven MVVM with RxSwift
Stars: ✭ 45 (-88.52%)
Mutual labels:  rxswift, mvvm
Verge
🟣 Verge is a very tunable state-management engine on iOS App (UIKit / SwiftUI) and built-in ORM.
Stars: ✭ 273 (-30.36%)
Mutual labels:  rxswift, mvvm
Jetpack github
基于Kotlin + Jetpack全家桶 + Coroutines(协程) + Flutter等架构实现的一款精简版Github客户端项目,望与广大小伙伴一起成长,欢迎start or fork!
Stars: ✭ 314 (-19.9%)
Mutual labels:  mvvm, viewmodel

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].