This project demonstrates the Model-View-ViewModel Coordinator (MVVM-C) architecture with RxSwift and also VIPER on iOS.
The first screen Login
uses MVVM-C & RxSwift while the next screen ListSong
uses VIPER and delegates.
This project also covers Unit Tests, Storyboard, Nibs and programmatic UIs.
Login
: MVVM-C & RxSwift. Storyboard
ListSong
VIPER. Programmatic UIs
ViewModels & Presenters & Interactors are covered by unit tests.
To run the unit tests, simply hit Cmd + U
in Xcode.
//TODO: Add more test cases
Xcode 9 + Swift 4
Songs_MVVM_VIPER
├──AppDelegate
├──Protocols
├──Entities
├──Base
├──Utility
├──Service
├──Scenes
│ ├──Login
│ │ ├──Coordinator
│ │ ├──ViewModel
│ │ ├──ViewController
│ ├──ListSong
│ │ ├──Wireframe
│ │ ├──Interactor
│ │ ├──Presenter
│ │ ├──ViewController
│ ├──SongDetail
│ │ ├──Wireframe
│ │ ├──Interactor
│ │ ├──Presenter
│ │ ├──ViewController
├──Main.storyboard