vip-clean-architecture

Enforce unidirectional View-Interactor-Presenter boundaries with protocol-based communication in iOS apps.

3|2|Updated Jan 18, 2026
One-click install
npx skills add https://github.com/dagba/ios-mcp --skill vip-clean-architecture
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: vip-clean-architecture
Source: https://github.com/dagba/ios-mcp/tree/main/skills/vip-clean-architecture
Command: npx skills add https://github.com/dagba/ios-mcp --skill vip-clean-architecture

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

VIP Clean Architecture provides a disciplined, testable separation of concerns by splitting UI (View), business logic (Interactor), and presentation (Presenter) with protocol-based boundaries and a unidirectional data flow. This helps teams refactor complex features, improve testability, and reduce coupling in large iOS apps.

Core Features & Use Cases

  • Unidirectional data flow: View → Interactor → Presenter → View, eliminating feedback loops.
  • Protocol-based boundaries: All components communicate through protocols, enabling easy testing with spies and mocks.
  • 3-core-component focus: Clear separation of concerns (View, Interactor, Presenter) plus Worker/Router for external services and navigation.
  • Use Case: Refactor a monolithic feature into VIP to improve testability and maintainability, with isolated interactor logic and formatted presentation.

Quick Start

Configure a sample VIP module with a ViewController, Interactor, Presenter, Router, and Worker using the provided configurator pattern, then run unit tests to verify that the flow respects the one-way data path.

Frequently Asked Questions about vip-clean-architecture

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

FAQPage Schema
How do I architect an iOS app for better testability and maintainability?

VIP clean architecture improves iOS app testability and maintainability by splitting UI, business logic, and presentation into View, Interactor, and Presenter components with strict protocol-based boundaries and a unidirectional data flow.

What is the unidirectional data flow in VIP architecture?

Unidirectional data flow in VIP architecture routes data strictly from View to Interactor to Presenter and back to View, eliminating feedback loops and ensuring clear separation of concerns for complex business logic.

How do I enforce strict boundaries between View, Interactor, and Presenter in iOS?

You enforce strict View-Interactor-Presenter boundaries by establishing protocol-based communication between components, using separate Request, Response, and ViewModel models, and isolating external services via dedicated Workers and Routers.

Can I use protocol-based boundaries to spy and mock iOS components during testing?

Yes, VIP architecture relies heavily on protocol-based boundaries, enabling easy unit testing with spies and mocks to verify that the one-way data path respects separate Request, Response, and ViewModel models.

Is VIP clean architecture suitable for refactoring monolithic iOS features?

VIP clean architecture is ideal for refactoring monolithic iOS features into isolated modules, especially for enterprise apps with complex business logic where improving testability and reducing coupling are top priorities.

What is the best way to structure data models in a VIP iOS module?

The best way to structure data models in a VIP iOS module is to separate them into distinct Request, Response, and ViewModel types, ensuring formatted presentation and strict separation between business logic and the view layer.