41

GitHub - tailec/ios-architecture: A collection of iOS architectures - MVC, MVVM,...

 5 years ago
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

? ? ? ?️
Demystifying MVC, MVVM, VIPER, RIBs and many others
A collection of simple one screen apps to showcase and discuss different architectural approaches in iOS

last commit

open issues

swift version

platform

license

Built with ❤︎ by Pawel Krawiec


Apps

Multi-screen examples Single screen examples app-ui app-ui

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 between ViewController 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 between ViewController 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 Progress

Sample 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.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK