https://github.com/hoc081098/search-book-mvvm-mvi-rxswift
:cyclone: Learning :zap: Search book MVVM / MVI + RxSwift 🌸Just combine, filter, transform Stream...
https://github.com/hoc081098/search-book-mvvm-mvi-rxswift
functional-reactive-programming ios-mvvm mvi mvi-architecture mvi-clean-architecture mvi-ios mvvm mvvm-architecture mvvm-ios mvvm-pattern reactive-programming rxalamofire rxcocoa rxswift rxswift-examples
Last synced: 6 months ago
JSON representation
:cyclone: Learning :zap: Search book MVVM / MVI + RxSwift 🌸Just combine, filter, transform Stream...
- Host: GitHub
- URL: https://github.com/hoc081098/search-book-mvvm-mvi-rxswift
- Owner: hoc081098
- License: mit
- Created: 2019-07-10T07:21:23.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2024-10-14T23:32:21.000Z (about 1 year ago)
- Last Synced: 2025-03-27T16:49:44.366Z (7 months ago)
- Topics: functional-reactive-programming, ios-mvvm, mvi, mvi-architecture, mvi-clean-architecture, mvi-ios, mvvm, mvvm-architecture, mvvm-ios, mvvm-pattern, reactive-programming, rxalamofire, rxcocoa, rxswift, rxswift-examples
- Language: Swift
- Homepage:
- Size: 153 KB
- Stars: 13
- Watchers: 1
- Forks: 3
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Search book MVI RxSwift
:cyclone: Learning :zap: Search book MVVM / MVI + RxSwift :cherry_blossom: Just combine, filter, transform Stream...
### Port [search-book-flutter-BLoC-pattern-RxDart](https://github.com/hoc081098/search-book-flutter-BLoC-pattern-RxDart.git) to Swift + RxSwift + MVVM version
| Demo 1 | Demo 2 |
| ------------- | ------------- |
||
|
### Contributors
[Petrus Nguyễn Thái Học](https://github.com/hoc081098)
### Summary
This app uses the Model-View-Intent architecture and uses RxSwift to implement the reactive characteristic of the architecture
The MVI architecture embraces reactive and functional programming. The two main components of this architecture, the _View_ and the _ViewModel_ can be seen as functions, taking an input and emiting outputs to each other. The _View_ takes input from the _ViewModel_ and emit back _intents_. The _ViewModel_ takes input from the _View_ and emit back _view states_. This means the _View_ has only one entry point to forward data to the _ViewModel_ and vice-versa, the _ViewModel_ only has one way to pass information to the _View_.
This is reflected in their API. For instance, The _View_ has only two exposed methods: