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.