arch-mvvm-clisted
Install: claude install-skill kbelasheuski/ios-architecture-skills
# MVVM-C (MVVM + Coordinator)
**Source references:**
- Soroush Khanlou, *Coordinators Redux* — https://khanlou.com/2015/10/coordinators-redux/
- raywenderlich/advanced-ios-app-arch-materials — https://github.com/raywenderlich/advanced-ios-app-arch-materials
- kudoleh/iOS-Clean-Architecture-MVVM (FlowCoordinator pattern) — https://github.com/kudoleh/iOS-Clean-Architecture-MVVM/blob/master/ExampleMVVM/Presentation/MoviesScene/Flows/MoviesSearchFlowCoordinator.swift
Two variants below — pick the one matching your UI framework.
## When to use
- UIKit medium/large apps with deep-linking, A/B routed flows, reusable flows.
- SwiftUI apps where `NavigationStack` alone is too anaemic (programmatic routing, deep-linking).
## Folder structure
UIKit variant (Coordinator object owns a `UINavigationController`):
```
App/SceneDelegate.swift
Coordinators/
Coordinator.swift ← base protocol
AppCoordinator.swift
UserFlowCoordinator.swift
Features/
UserList/UserListViewController.swift + UserListViewModel.swift
UserDetail/UserDetailViewController.swift + UserDetailViewModel.swift
Domain/ Data/
```
SwiftUI Router variant (what the example ships):
```
Sources/
App/UsersApp.swift
Router/Route.swift + AppRouter.swift ← @Observable path-based router
Features/
UserList/UserListModel.swift + UserListView.swift
UserDetail/UserDetailModel.swift + UserDetailView.swift
Domain/ Data/
```
## Reference implementation
The full worked `UserList + UserDetail` f