# swiftui-specialist

A skill that feeds an AI agent reference notes on idiomatic SwiftUI while it writes, reviews or edits your code.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 864 installs · ★ 352
- Author: superagents-lab
- License: not stated · policy=link-only · description only; the file stays with the author
- Source: https://github.com/superagents-lab/xcode27-skills/tree/HEAD/swiftui-specialist/SKILL.md
- Updated: 2026-06-09
- HTML: https://affpapa.org/en/nevibecode/skills/swiftui-specialist

## What it does

The skill is a set of reference files. `references/structure.md` covers when to split a section into its own `View` struct versus a computed property, what init costs look like, and why a single-child `Group` is an anti-pattern. `references/dataflow.md` handles passing and storing data: `@State`, `@Binding`, `@Observable` models instead of `ObservableObject`, the `@MainActor` and `Equatable` requirements, and the granularity traps of per-property observation.

Other files cover `@Environment` and `EnvironmentKey`, conditional modifiers, localizing user-facing text, custom `Animatable` types, and `ForEach`. Two more are about soft-deprecated SwiftUI APIs: one explains how to spot them and when to migrate, the other is a searchable list with replacements.

Ask for a broad review of a large codebase and the agent scans the project first, splits it into smaller areas, and offers them for evaluation one at a time; a full review runs off a TODO list. One thing to know: the skill states its content overrides whatever the model previously learned about SwiftUI, so on contested points the agent follows these references instead of its own memory.

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add superagents-lab/xcode27-skills --skill swiftui-specialist -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/swiftui-specialist/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/swiftui-specialist/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add superagents-lab/xcode27-skills --skill swiftui-specialist -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/swiftui-specialist/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add superagents-lab/xcode27-skills --skill swiftui-specialist -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/swiftui-specialist/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install superagents-lab/xcode27-skills swiftui-specialist
```

2. **Manually: put the files in place**
- File: `.github/skills/swiftui-specialist/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add superagents-lab/xcode27-skills --skill swiftui-specialist -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/superagents-lab/xcode27-skills --path swiftui-specialist
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/swiftui-specialist/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add superagents-lab/xcode27-skills --skill swiftui-specialist -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/superagents-lab/xcode27-skills/tree/HEAD/swiftui-specialist/SKILL.md

## When to use it
- split a crowded screen into separate `View` structs without extra computed properties
- migrate a model from `ObservableObject` to `@Observable` without losing observation
- find soft-deprecated SwiftUI APIs in a project and swap them out
- check element identity in `ForEach` and `List` so animations keep working
- move user-facing strings into localization with correct date and number formats

## Example prompts
- Review this screen against `references/structure.md` — should these sections be separate `View` structs?
- Rewrite this model with `@Observable` and explain what changes in property observation
- Find soft-deprecated SwiftUI APIs in this project and suggest replacements

## Similar
- [swiftui-patterns](https://affpapa.org/en/nevibecode/skills/affaan-m-swiftui-patterns.md) — skill · 4600 installs
- [swiftui-development](https://affpapa.org/en/nevibecode/skills/swiftui-development.md) — skill · 676 installs
- [swiftui-view-refactor](https://affpapa.org/en/nevibecode/skills/swiftui-view-refactor.md) — skill · 113 installs
- [SwiftUI iOS App taste](https://affpapa.org/en/nevibecode/prompts/swiftui-ios-app-taste.md) — prompt · ★ 174597
- [swiftui-animation](https://affpapa.org/en/nevibecode/skills/swiftui-animation.md) — skill · 5400 installs
- [swiftui-navigation](https://affpapa.org/en/nevibecode/skills/swiftui-navigation.md) — skill · 4400 installs

From the same set: [superagents-lab/xcode27-skills](https://affpapa.org/en/nevibecode/by/superagents-lab/xcode27-skills.md) — 6 cards

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
