https://github.com/behrad-kzm/quizer
a quiz app with Clean architecture MVVM and RxSwift
https://github.com/behrad-kzm/quizer
clean clean-architecture example generic ios mvvm quiz quizapp rxalamofire rxswift rxtimer swift swift4 viper
Last synced: about 2 months ago
JSON representation
a quiz app with Clean architecture MVVM and RxSwift
- Host: GitHub
- URL: https://github.com/behrad-kzm/quizer
- Owner: behrad-kzm
- License: gpl-2.0
- Created: 2018-11-22T10:41:46.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2019-03-15T08:25:36.000Z (over 6 years ago)
- Last Synced: 2025-04-05T14:03:47.912Z (2 months ago)
- Topics: clean, clean-architecture, example, generic, ios, mvvm, quiz, quizapp, rxalamofire, rxswift, rxtimer, swift, swift4, viper
- Language: Swift
- Homepage:
- Size: 2.06 MB
- Stars: 30
- Watchers: 3
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Quiz Application using Clean architecture, MVVM and RxSwift
### Installing and build
Dependencies in this project are provided via Cocoapods. Please install all dependecies with
`
pod install
`#### Build sequence:
`
Domain > NetworkPlatform > Application
`## High level overview
#### Domain
The `Domain` is basically what is the App about and what it can do (Entities, UseCase etc.) **It does not depend on UIKit or any persistence framework**, and it doesn't have implementations apart from entities
#### Platform
The `Platform` is a concrete implementation of the `Domain` in a specific platform like iOS. It does hide all implementation details.
#### Application
`Application` is responsible for delivering information to the user and handling user input. It can be implemented with any delivery pattern e.g (in quiz app is MVVM). This is the place for `UIView`s and `UIViewController`s. As you will see from the quiz app, `ViewControllers` are completely independent of the `Platform`. The only responsibility of a view controller is to "bind" the UI to the Domain to make things happen.### Refrences
* [RxSwift](https://github.com/ReactiveX/RxSwift)
* [RxSwift Book](https://store.raywenderlich.com/products/rxswift)
* [Robert C Martin - Clean Architecture and Design](https://www.youtube.com/watch?v=Nsjsiz2A9mg)
* [Cycle.js](https://cycle.js.org)
* [ViewModel](https://medium.com/@SergDort/viewmodel-in-rxswift-world-13d39faa2cf5#.qse37r6jw) in Rx world### Contact me
* feel free to contact by [Email](mailto://[email protected])
* or send me message on [Telegram](https://t.me/berad)