mvvm-uikit-architecture

Migrate UIKit MVC codebases to MVVM with staged refactoring and Coordinator navigation.

Updated Aug 23, 2026
One-click install
npx skills add https://github.com/rusel95/WhiteNoise --skill mvvm-uikit-architecture
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: mvvm-uikit-architecture
Source: https://github.com/rusel95/WhiteNoise/tree/main/.claude/skills/mvvm-uikit-architecture
Command: npx skills add https://github.com/rusel95/WhiteNoise --skill mvvm-uikit-architecture

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Enterprises face challenges migrating large UIKit MVC apps to MVVM safely, with testability, maintainability, and scalable navigation patterns.

Core Features & Use Cases

  • Zero UIKit imports in ViewModels and a strict ViewState-based data flow
  • Coordinator-based navigation and DI via constructors for testability
  • DiffableDataSource, programmatic Auto Layout, and phased refactoring workflows

Quick Start

Start by scaffolding a refactoring/ directory and add a new feature file to begin extracting a ViewModel from an existing VC.

Frequently Asked Questions about mvvm-uikit-architecture

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

FAQPage Schema
How do I migrate a UIKit MVC codebase to MVVM safely?

Migrate a UIKit MVC codebase to MVVM safely by scaffolding a dedicated refactoring/ directory and iteratively extracting ViewModels from existing view controllers using a phased workflow. This production-first approach enforces testable PR workflows for staged refactoring.

How do I enforce zero UIKit imports in ViewModels during iOS app refactoring?

Enforce zero UIKit imports in ViewModels by adopting a strict ViewState enum for asynchronous data flow. This pattern separates view logic entirely, ensuring ViewModels remain testable and independent of UIKit dependencies.

What is the best way to implement Coordinator-based navigation in a large UIKit app?

The best way to implement Coordinator-based navigation in a large UIKit app is by combining it with dependency injection via constructors. This ensures scalable, testable navigation flows decoupled from view controllers.

Can I use DiffableDataSource with programmatic Auto Layout when migrating to MVVM?

Yes, you can use DiffableDataSource with programmatic Auto Layout when migrating to MVVM. This combination is supported within the phased refactoring workflow to modernize data-driven UIKit views safely.

Is MVVM refactoring suitable for enterprise iOS applications?

MVVM refactoring is suitable for enterprise iOS applications because it prioritizes testability, maintainability, and scalable navigation patterns. It enforces strict guidelines like constructor-based dependency injection and testable PR workflows.

Why does my UIKit to MVVM migration fail testability checks?

UIKit to MVVM migrations often fail testability checks when ViewModels contain UIKit imports or lack constructor-based dependency injection. Enforcing a strict ViewState enum and DI via constructors resolves these testability failures.