Ios architecture
Skill ComeOnOliver/skillshub/skills/HoangNguyen0403/agent-skills-standard/ios-architecture
🧠The right skill, one API call. AI agent skills registry with token-efficient skill resolution. 5,000+ skills from 500+ top repos.
npx -y skills add ComeOnOliver/skillshub --skill ios-architectureAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
What its author says it does
Copied from the file, not written here
Standards for MVVM, Coordinators, and Clean Architecture (VIP/VIPER). Use when applying MVVM, Coordinators, or VIP/VIPER architecture in iOS apps. (triggers: **/*ViewModel.swift, **/*Coordinator.swift, **/*ViewController.swift, MVVM, Coordinator, ViewState, Output, Input)
SKILL.md
2.6 KB, 501 tokens by cl100k_base, as published. Nobody here has run it
iOS Architecture Standards
Priority: P0 (CRITICAL)
Implementation Guidelines
MVVM (Model-View-ViewModel)
- ViewModel Responsibility: Handle business logic, formatting, and state. No UIKit imports (except for platform types like
UIImageif strictly necessary). - ViewState: Use a single state object or discrete
@Publishedproperties for UI updates. Expose state asprivate(set)or using publishers. - Inputs/Outputs: Define explicit protocols or nested types for inputs (events from View) and outputs (state for View).
Coordinator Pattern
- Navigation Logic: Decouple ViewControllers from navigation logic. The Coordinator handles instantiation and push/present. Do NOT use
navigationControllerdirectly in the ViewController for screen transitions. - Dependency Injection: Pass dependencies (Services, Repositories) through the Coordinator into the ViewModels.
- Child Coordinators: Maintain a hierarchy; correctly remove child coordinators from the parent's collection when their flow is finished.
Clean Architecture (VIP/VIPER)
- VIP (Clean Swift): Use Interactor for logic, Presenter for UI formatting, and ViewController for display.
- Unidirectional Flow: Data flows: View -> Interactor -> Presenter -> View.
- VIPER: (View, Interactor, Presenter, Entity, Router) — another common architectural pattern for iOS apps.
Anti-Patterns
- No Logic in VC: Move business logic to ViewModel/Interactor.
- No Public ViewModel State: Keep state private(set) or using publishers.
- No Direct Navigation: Use a Coordinator for screen transitions. Never use
navigationControllerdirectly.
Verification Checklist (Mandatory)
- Pure ViewModel: Does the ViewModel have any
UIKitimports? (Prohibited) - Navigation: Is
navigationControllerused directly in the VC for transitions? (Use Coordinator) - State Access: Is ViewModel state exposed as
public var? (Useprivate(set)or publishers) - Deallocation: Are child coordinators correctly removed from the parent's collection on finish?
- VIP Unidirection: Is the data flow unidirectional (View -> Interactor -> Presenter -> View)?
References
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.