ios-uikit-architecture

Apply MVVM, MVC, and Coordinator patterns to UIKit-based iOS apps.

187|20|Updated Nov 20, 2025
One-click install
npx skills add https://github.com/TheBushidoCollective/han --skill ios-uikit-architecture
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: ios-uikit-architecture
Source: https://github.com/TheBushidoCollective/han/tree/main/jutsu/jutsu-ios/skills/uikit-architecture
Command: npx skills add https://github.com/TheBushidoCollective/han --skill ios-uikit-architecture

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Architectural guidance for UIKit-based iOS applications, including MVVM/MVC/Coordinator patterns and UIKit-SwiftUI integration.

Core Features & Use Cases

  • MVVM architecture with presentation logic separation
  • Coordinator pattern to manage navigation flow
  • Dependency injection for testability and modularity

Quick Start

Introduce an MVVM structure, create a Coordinator to handle navigation, and wire dependencies for testability.

Frequently Asked Questions about ios-uikit-architecture

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I structure a UIKit app using MVVM architecture?

MVVM architecture separates UIKit presentation logic from business logic by organizing code into View, ViewModel, and Model layers. The ViewModel handles state and logic, the View displays data, and the Model manages business rules. This separation improves testability and maintainability in UIKit projects.

What is the Coordinator pattern and why use it for navigation in iOS?

The Coordinator pattern manages navigation flow by centralizing screen transitions in separate objects rather than embedding navigation logic in view controllers. This approach decouples screens, simplifies testing, and makes feature modules easier to reuse and recombine.

How do I implement dependency injection in UIKit for testable components?

Dependency injection passes required dependencies through initializers rather than creating them inside components. In UIKit, inject view models, services, and coordinators into view controllers at creation time, enabling mock objects for testing and flexible component composition.

Can I use MVVM and Coordinator patterns with SwiftUI integrated in a UIKit app?

Yes. MVVM and Coordinator patterns work with UIKit-integrated SwiftUI by maintaining consistent separation of concerns across both frameworks. SwiftUI views bind to shared ViewModels, and Coordinators manage navigation for both UIKit and SwiftUI screens in the same app.

What architectural patterns work best for managing feature modules in UIKit?

MVVM combined with Coordinators and dependency injection provides clear boundaries for feature modules. Each module owns its screens, ViewModels, and Coordinator, with dependencies injected at module creation, enabling independent development and testing of features.

How do I set up programmatic UI with Auto Layout while maintaining clean architecture?

Separate UI layout code into dedicated View classes that configure constraints programmatically, keeping ViewControllers focused on orchestration. Inject these Views and bind them to ViewModel outputs, maintaining the separation of concerns across layout, presentation, and business logic.