ios-app-architecture

Select and implement iOS/macOS architecture patterns with migration guidance.

1|Updated Jun 9, 2026
One-click install
npx skills add https://github.com/Emasoft/emasoft-complete-ios-app-authoring --skill ios-app-architecture-emasoft
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: ios-app-architecture
Source: https://github.com/Emasoft/emasoft-complete-ios-app-authoring/tree/main/skills/ios-app-architecture
Command: npx skills add https://github.com/Emasoft/emasoft-complete-ios-app-authoring --skill ios-app-architecture-emasoft

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill eliminates the risk of selecting the wrong iOS/macOS app architecture, which leads to unmaintainable Massive View Controllers, wasted development time, and expensive late-stage rewrites. It provides a decision compass tailored to the Swift 6 / iOS 26 era, ensuring your architecture matches your project's actual size, team structure, and domain complexity rather than over-engineered "future-proof" choices.

Core Features & Use Cases

  • Decision Compass: A guided questionnaire and matrix to recommend the optimal architecture stack (MVC, MVVM + Coordinator/Router, Clean Architecture, VIPER, MVI, TCA) based on team size, project lifetime, domain complexity, UI framework, and testing requirements.
  • Implementation Guidance: Detailed reference files for each supported stack, covering ViewModel design, navigation patterns, dependency injection, SPM modularization, Swift Concurrency placement, and cross-cutting error/networking/persistence layers.
  • Migration & Anti-Pattern Avoidance: Additive migration paths between patterns (e.g. MVC → MVVM, MVVM → Clean) and a list of universal anti-patterns to avoid, such as mixing architecture patterns per feature or over-engineering small projects.
  • Use Case Example: A solo developer starting a 3-screen CRUD app gets a recommendation for MVC with manual DI, while a 4-person team building a 2-year fintech app with rich business rules is guided to Clean Architecture with SPM modularization.

Quick Start

Ask the ios-app-architecture skill to recommend the optimal architecture stack for your new iOS project, providing answers to the 5 intake questions about team size, project lifetime, domain complexity, UI framework, and testing requirements.

Frequently Asked Questions about ios-app-architecture

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

FAQPage Schema
How do I choose the right iOS app architecture for my project?▼

To choose an iOS app architecture, evaluate project size, team structure, domain complexity, UI framework, and testing requirements using a decision matrix that recommends patterns like MVC, MVVM, VIPER, or TCA based on your specific constraints.

When should I use Clean Architecture vs MVVM in Swift?▼

Use Clean Architecture in Swift for long-term projects with rich business rules and larger teams, while MVVM with Coordinators suits smaller teams needing clear separation of UI logic without the overhead of full domain layers.

Can I migrate from MVC to MVVM in an existing UIKit app?▼

Migrating from MVC to MVVM in an existing UIKit app is supported through additive migration paths, allowing you to transition features incrementally without requiring a full rewrite of your current view controllers.

Does SwiftUI require a specific architecture pattern like TCA or MVI?▼

SwiftUI does not mandate a specific architecture pattern like TCA or MVI; the optimal choice depends on your domain complexity and testing requirements, with simpler apps often succeeding with MVVM and complex state-driven apps benefiting from TCA.

What are common iOS architecture anti-patterns to avoid?▼

Common iOS architecture anti-patterns to avoid include over-engineering small projects with unnecessary abstraction layers and mixing different architecture patterns per feature within the same application codebase.

How do I structure dependency injection and Swift Concurrency in a modular iOS app?▼

Structure dependency injection and Swift Concurrency in a modular iOS app by placing concurrency boundaries at architectural seams and using SPM modularization to isolate features, ensuring ViewModels handle async data fetching without leaking concurrency context to views.