Part of brown bag/guild meeting to present some of the most commonly used iOS UI architectures.
There are two main elements in repository.
- Xcode project for architectures
- Vapor service to imitate network service.
Project contains 3 architectures.
- MVC - Apple way, where controller is a glue code for model and view interactions.
- MVVM - Extension of Apple MVC with one more abstraction layer for presentation logic (ViewModel) and custom communication between model and view changes.
- C-MVVM - Extension of MVVM with additional layer for navigation within application (Coordinators).
All architectures share part of code (networking, models, modals) to better present differences between them, under FIXME
Xcode mark there could be found hints/problems of each of them.
C-MVVM has some sample tests to present simple way to mock network requests in Swift code.
In order to launch application, please follow below steps.
- Install Vapor toolbox
- Open Terminal in root folder and execute
$ cd TasksService
$ vapor build
$ vapor run
Open architecture Xcode project and run one of the targets
- MVC
- MVVM
- C-MVVM
Code is released under the MIT license. See LICENSE for details.