← ClaudeAtlas

arch-mvvm-clisted

MVVM + Coordinator. UIKit variant uses Coordinator classes owning UINavigationController. SwiftUI variant uses a typed Router with NavigationStack(path:). Use for UIKit medium/large apps with deep-linking or SwiftUI apps where NavigationStack alone is too thin.
kbelasheuski/ios-architecture-skills · ★ 0 · Web & Frontend · score 70
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