arch-clean-swiftlisted
Install: claude install-skill kbelasheuski/ios-architecture-skills
# Clean Swift (VIP)
**Source references:**
- Raymond Law, *Clean Swift* — https://clean-swift.com/
- Essential Developer, *Clean Swift design pattern review* — https://www.essentialdeveloper.com/articles/clean-ios-architecture-part-7-vip-clean-swift-design-pattern-or-architecture/
## When to use
- TDD-committed UIKit teams.
- Long-lived codebases where data shape per layer is auditable.
- Reject for SwiftUI-first.
## Folder structure
```
Scenes/
UserList/
UserListModels.swift
UserListViewController.swift
UserListInteractor.swift
UserListPresenter.swift
UserListRouter.swift
UserListWorker.swift
UserListConfigurator.swift
UserDetail/
... (same seven files)
```
## Reference implementation — full feature
```swift
// Scenes/UserList/UserListModels.swift
import Foundation
enum UserList {
enum FetchUsers {
struct Request: Equatable { let reset: Bool }
struct Response: Equatable {
let users: [User]
let loading: ViewModel.Loading
let errorMessage: String?
}
struct ViewModel: Equatable {
struct Row: Equatable { let id: User.ID; let title: String; let subtitle: String }
enum Loading { case none, fullScreen, nextPage }
let rows: [Row]
let loading: Loading
let errorMessage: String?
}
}
enum SelectRow {
struct Request { let index: Int }
}
}
// Scenes/UserList/UserListWorker.swift
final cl