GitHub - tailec/ios-architecture: A collection of iOS architectures - MVC, MVVM,...
source link: https://github.com/tailec/ios-architecture
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
README.md
ios-architecture
Apps
Architectures
This repository hosts each sample app in separate branches.
⭐️ 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 test
.**
If you're a themoviedb user, please use your own account and API key!
Example Description tmdb-mvvm-rxswift-pure Uses RxSwift and observables as binding mechanism betweenViewController
and ViewModel
. Also, it uses simple navigator pattern for transitions between screens.
Single screen app examples
The purpose of having examples with single page applications is highlighting connection between view code and business logic code.
Example Description mvvm-rxswift-pure Uses RxSwift and observables as binding mechanism betweenViewController
and ViewModel
.
mvvm-rxswift-functions-subjects-observables
Uses RxSwift and observables as outputs from ViewModel
. ViewModel
inputs are defined as subjects wrapped in functions.
mvvm-rxswift-subjects-observables
Uses RxSwift with observables as ViewModel
outputs and subjects as ViewModel
inputs.
mvvm-delegation
Binds ViewController
and ViewModel
using delegation pattern.
Examples in progress
Example Description mvc In Progress mvp In Progress mvvm-closures In Progress mvvm-reactive-swift In Progress reswift In Progress viper In Progress viper-rxswift In Progress ribs In ProgressSample apps
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 ViewModel
and 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
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
Checkout one of the branches:
git checkout mvvm-rxswift-pure-observables
Install pods:
pod install
Note: Some of the examples don't use external libraries so pod install
is not required.
Note: When switching branches, quit Xcode first. It copies ignored .xcworkspace
and .xcproj
for some reason.
Note: Master branch contains only README file and it doesn't compile.
Licence
MIT.
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK