This repository hosts each sample app in separate directory.
⭐ Click the title of example to see detailed README information about specific architecture.
Multiple screens app examples
🔒 ** If you want to login, use username
iostest and password
If you’re a themoviedb user, please use your own account and API key!
|tmdb-mvvm-rxswift-pure||Uses RxSwift and observables as binding mechanism between
Single screen app examples
The purpose of having examples with single page applications is highlighting connection between view code and business logic code.
|mvc||Standard MVC pattern recommended by Apple. Uses composition design pattern to make
|mvp||Standard MVP pattern. (README in progress)|
|mvvm-rxswift-pure||Uses RxSwift and observables as binding mechanism between
|mvvm-rxswift-functions-subjects-observables||Uses RxSwift and observables as outputs from
|mvvm-rxswift-subjects-observables||Uses RxSwift with observables as
|rxfeedback-mvc||Uses RxFeedback in MVC architecture (README in progress)|
|viper||Uses VIPER architecture (README in progress)|
Examples in progress
Apps in this repository are split into 2 groups – single screen and multiscreen.
Simple one screen apps aim to be simple enough that you can understand crucial bits about given architecture (i.e. bindings between
ViewController in MVVM examples).
However, some other architectures require more complexity (i.e. RIBs architecture) and this is the reason of having multiscreen examples in this project.
Single screen app
Single screen app is a simple list of repositories fetched from GitHub and a text field that makes queries for new data.
Multiscreen app is a simple themoviedb client. It lets user to authenticate, view popular movies/tv shows or actors and see details about each movie. Also, it has a search screen that allows you to browse movies or actors.
Open in Xcode
Clone the repository:
git clone [email protected]:tailec/ios-architecture.git
Go to example directory, for example:
Note: Some of the examples don’t use external libraries so
pod install is not required.