Skip to content
Development
Skill

/ios-dev

Start here for any iOS or SwiftUI task. Coordinates best-practice guides, correctness checks, and full Apple API references. Use before navigating to other Apple skills — for building, reviewing, refactoring, or debugging iOS apps.

From plugin
prisma-labs-dev-apple-skills
29933 skills
Install
$ npx -y skills add Prisma-Labs-Dev/apple-skills --skill ios-dev --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/ios-dev

Context preview

The summary Claude sees to decide when to auto-load this skill.

Start here for any iOS or SwiftUI task. Coordinates best-practice guides, correctness checks, and full Apple API references. Use before navigating to other Apple skills — for building, reviewing, refactoring, or debugging iOS apps.

SKILL.md

ios-dev.SKILL.md
name: ios-dev
user-invocable: true
description: "Start here for any iOS or SwiftUI task. Coordinates best-practice guides, correctness checks, and full Apple API references. Use before navigating to other Apple skills — for building, reviewing, refactoring, or debugging iOS apps."

iOS Development

Start here. This skill coordinates the Apple skills collection — it tells you *which* skill to use and *when*, so you get opinionated guidance and full API references together.

Operating Rules

  • SwiftUI and UIKit are both first-class — pick whichever fits the task. UIKit is a valid choice whenever it gives more control or flexibility; when bridging the two, watch state sync, lifecycle, and animation/environment boundaries.
  • Do not enforce specific architectures (MVVM, VIPER, MV, TCA, etc.) — encourage separating business logic from views without mandating how
  • Hold a high bar for UI craft: apps should feel current-generation — fluid, design-forward, alive. Sweat the tiny details. Custom components, novel interactions, and custom Metal shaders are all in-bounds when they serve the experience; system defaults are a floor, not a ceiling.
  • Do not prescribe how that craft is delivered — no house style, no "Apple-approved" gatekeeping, no aesthetic checklists. Design direction is your own judgment call, made per app. The `hig` and `ios-liquid-glass` skills document what the system provides; they are references, not style mandates. **When the task is designing a screen or making it look good, there is no doc to route to** — design from your own taste; grep references only when you need API mechanics or a factual minimum (e.g. hit-target sizes).
  • Present performance optimizations as suggestions backed by reasoning, not blanket requirements
  • When you need exact API details, grep the framework reference skills — they contain full Apple documentation

Task Workflows

Review existing code

1. Read the code and identify which topics apply 2. Run the **Correctness Checklist** below — violations are bugs 3. Use the **Topic Router** to load the relevant guide for each topic 4. For API correctness, grep the matching framework reference skill

Improve existing code

1. Run the correctness checklist first 2. For performance issues: use `guide-swiftui-performance-audit` 3. For navigation, state, or pattern questions: use `guide-swiftui-ui-patterns` 4. For API details: grep the matching framework reference skill

Build a new feature

1. Design data flow first — identify owned vs. injected state 2. For UI patterns and app wiring: use `guide-swiftui-ui-patterns` 3. For API details: grep the matching framework reference skill 4. Structure views for optimal diffing — extract subviews early 5. Run the correctness checklist before finishing

Topic Router

The **Guide** column has opinionated, short pattern guides. The **API Reference** column has full Apple documentation as grepable Markdown — use `apple-docs-index` to find which framework has what.

| Topic | Guide | API Reference | |-------|-------|---------------| | State management | `guide-swiftui-ui-patterns` | `swiftui` (state.md, binding.md, observation.md, environment.md) | | View composition | — | `swiftui` (view-protocol.md) | | Performance | `guide-swiftui-performance-audit` | — | | Navigation | `guide-swiftui-ui-patterns` | `swiftui` (navigationstack.md, navigationsplitview.md, navigationlink.md) | | Sheets & modals | `guide-swiftui-ui-patterns` | `swiftui` (sheet.md, inspector.md, alert.md, confirmationdialog.md) | | Lists & ForEach | `guide-swiftui-ui-patterns` | `swiftui` (list.md) | | ScrollView | `guide-swiftui-ui-patterns` | `swiftui` (scrollview.md) | | Forms & input | — | `swiftui` (form.md, textfield.md, picker.md, toggle.md, slider.md) | | Charts | `guide-swiftui-charts` | `swiftui` (chart.md, charts-overview.md) | | Animations | `guide-swiftui-animations` | `swiftui` (swiftui-overview.md) | | Layout | `guide-swiftui-ui-patterns` | `swiftui` (geometryreader.md, grid.md, hstack.md, vstack.md, zstack.md, spacer.md) | | TabView | `guide-swiftui-ui-patterns` | `swiftui` (tabview.md) | | Liquid Glass | — | `ios-liquid-glass` | | Accessibility | `guide-swiftui-ui-patterns` | `hig` (a11y/ergonomic facts) | | macOS apps | `guide-macos-spm-packaging` | `swiftui`, `uikit` | | Data persistence | `guide-swiftdata` | `swiftdata` | | Testing | `guide-swift-testing` | `swift-testing`, `xcuitest` | | Concurrency | `guide-swift-concurrency` | `swift-concurrency` | | In-app purchases | — | `storekit` | | Maps | — | `mapkit` | | Health data | — | `healthkit` | | Notifications | — | `usernotifications` | | App Intents / Siri | — | `appintents` | | Widgets | — | `widgetkit` | | App Store metadata | `apple-aso` | — | | Finding docs | `apple-docs-index` | — |

Correctness Checklist

These are hard rules — violations are always bugs:

  • [ ] `@State` properties are `private`
  • [ ] `@Binding` only where a child needs to mutate parent state
  • [ ] Values passed in are never declared as `@State` — they silently ignore updates
  • [ ] Use `@State` with `@Observable` classes — not `@StateObject` or `ObservableObject`
  • [ ] Use `@Bindable` for injected observables that need bindings
  • [ ] `ForEach` uses stable identity — never `.indices` on dynamic content
  • [ ] Each `ForEach` element produces a constant number of views
  • [ ] `.animation(_:value:)` always includes the `value:` parameter
  • [ ] `@FocusState` properties are `private`
  • [ ] `@Observable` classes are `@MainActor` — Swift 6 strict concurrency requires it
  • [ ] Property wrappers (`@AppStorage`, `@SceneStorage`, `@Query`) inside `@Observable` classes are marked `@ObservationIgnored` — they conflict with the macro and cause compiler errors
  • [ ] No business logic in `body` — use `.task`, `.onChange`, or methods
  • [ ] No `AnyView` unless truly unavoidable — fix with better composition

Related Skills

**System API reference:**

  • `/ios-liquid-glass` — Liquid Glass API reference

**

Read more
Ships withprisma-labs-dev-apple-skills

Apple development skills for Claude Code, Codex, and other coding agents — current iOS 26+ APIs, SwiftUI, UIKit, Liquid Glass, Human Interface Guidelines, and practical workflow guides.

Get the whole plugin
Stats
300
Stars
16
Forks
Active
Maintenance
TypeScript
Language
MIT
License
4h ago
Last commit
5mo ago
Created

Repo: Prisma-Labs-Dev/apple-skills