Skip to content
Agentmart
Submit a tool

ios-app-architecture

Use when starting a new native iOS app, reshaping an existing SwiftUI codebase, or deciding how to structure screens, models, services, persistence…

Skill by phrypy

IndexedMIT★ 7
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/phrypy-ios-app-architecture

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Use when starting a new native iOS app, reshaping an existing SwiftUI codebase, or deciding how to structure screens, models, services, persistence, extensions, and app-wide conventions for fast solo shipping.

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/ios-app-architecture

What's inside

Skill name
ios-app-architecture
Description
Use when starting a new native iOS app, reshaping an existing SwiftUI codebase, or deciding how to structure screens, models, services, persistence, extensions, and app-wide conventions for fast solo shipping.
License
MIT
Instructions
79 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

# iOS App Architecture

Design for fast solo iteration, not architecture theater.

## Defaults

- SwiftUI first
- UIKit only where platform APIs require it
- small focused view files
- clear service boundaries
- view models without UI imports
- persistence decisions made early
- zero third-party dependencies by default

## Recommended Shape

- `App/`
  - app entry, container setup, navigation state, app delegates
- `Models/`
  - persistent models and small domain types
- `Services/`
  - business operations, persistence helpers, sync, export, OCR, billing
- `ViewModels/`
  - screen state and orchestration
- `Views/`
  - product UI, grouped by feature
- `Utilities/`
  - constants, theming, environment helpers
- `Intents/`, `Widgets/`, `Extensions/`
  - separate when the app actually needs them

## State Rules

- `View` owns display state
- `ViewModel` owns screen logic
- `Service` owns reusable operations
- avoid singletons unless the dependency is truly app-wide
- if something is cross-screen but UI-driven, make the ownership explicit

## Persistence Rules

- choose the store model early
- keep model types small and obvious
- avoid mixing persistence logic throughout views
- isolate migrations, seeding, and shared-container setup near app boot
- if CloudKit is used, treat destructive recovery actions as high risk

## Solo-Friendly Boundary Test

For each file, answer:

- what is this file responsible for
- what can call it
- what should never live here

If the answer is fuzzy, the boundary is weak.

## Good Smells

- screen behavior understandable from one view model
- services reusable without copying logic
- one feature can be changed without touching six unrelated files
- extensions and widgets can read only what they actually need

## Bad Smells

- views doing persistence directly everywhere
- giant "manager" files
- global state solving local problems
- async work launched without clear ownership
- product rules spread across multiple screens

## When Refactoring Existing Apps

- preserve patterns that already work
- fix boundaries only where they block shipping or stability
- avoid large architecture rewrites unless the current structure is actively failing

From phrypy/ios-app-playbook, MIT.

More from phrypy/ios-app-playbook

Signals

Stars
7
Forks
2
Open issues
0
Last commit (this folder)
Apr 20, 2026 (6 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from phrypy

Cite this page

ios-app-architecture skill. Agent Mart. https://agentmart.dev/skills/phrypy-ios-app-architecture (last updated 2026-10-24)