本文へ移動
cccskills
無料GitHub で公開

ios-skills-router

Always use when working on any iOS, macOS, Swift, SwiftUI, Xcode, or Apple platform project. Routes to the correct specialized skills based on development phase and task context. This collection contains 210 skills from 28 authors covering the full iOS lifecycle.

インストール方法を見る

含まれるファイル(1)

  • SKILL.md13.0 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

iOS Skills Router

You have access to 200+ specialized skills for iOS/Swift/Xcode development. Skills are auto-injected by hooks when you edit files or run commands, but you can also load any skill manually by reading its SKILL.md.

CRITICAL: Proactively Load Skills Before Coding

Do NOT start coding without checking for relevant skills first. This is the most important instruction in this router.

Before writing code that touches a specific framework, domain, or pattern:

  1. Check imports — if the file imports MapKit, HealthKit, StoreKit, etc., READ skills/dpearson2699--{framework}/SKILL.md BEFORE writing code.
  2. Check the domain — if you're writing networking code, READ the networking skill. If you're writing concurrency, READ the concurrency skill. Don't guess.
  3. Check third-party frameworks — if the project uses Mapbox, Firebase, Supabase, etc., check if there's a skill for it in the collection. ls skills/ | grep {name}.
  4. When in doubt, search — ls skills/ | grep -i {keyword} to find relevant skills.

Skills are only useful if you READ them before coding. Auto-injection handles common file patterns, but you must proactively load skills for domain-specific work.

How Routing Works

  1. Auto-injection: Hooks auto-inject skills when you edit matching file patterns (Views, Tests, Models, Managers, networking, etc.) or run commands (xcodebuild, swift test, asc).
  2. Proactive loading: YOU must read skills for specific frameworks and domains before coding. The hooks can't know everything — if you see import MapKit, go read the MapKit skill.
  3. Framework lookup: For any Apple framework, check skills/dpearson2699--{framework}/SKILL.md.
  4. Search: ls skills/ | grep -i {keyword} to find skills by topic.

Phases

1. Ideation — "What should we build?"

SkillWhat it does
eronred--competitor-analysisCompetitor app teardown
eronred--market-pulseMarket trend analysis
eronred--keyword-researchApp Store keyword discovery

2. Design — "How should it look and feel?"

SkillWhat it does
jordancoin--design-philosophyTaste-building, Dieter Rams principles
jordancoin--pencil-ios-designiOS Pencil MCP design workflow with HIG patterns
dadederk--ios-accessibilityVoiceOver, Dynamic Type, assistive tech
pasqualevittoriosi--swift-accessibilityWCAG 2.2, App Store Nutrition Labels

3. Develop — "Build it"

Core (auto-injected on .swift files):

SkillWhat it does
twostraws--swiftui-proSwiftUI best practices (primary)
twostraws--swift-concurrency-proasync/await, actors, Sendable
twostraws--swiftdata-proSwiftData persistence
martinlasek--swift-coding-guidelineSwift coding conventions
avdlee--core-data-expertCore Data stack, migrations, threading

Architecture:

SkillWhat it does
arimunandar--vip-architectureVIP+W Clean Architecture
arimunandar--uikit-layoutingUIKit horizontal-first layout
arimunandar--legacy-migrationUIKit → SwiftUI migration

76 Framework Skills — load when you see the import:

import HealthKit    → dpearson2699--healthkit
import MapKit       → dpearson2699--mapkit
import StoreKit     → dpearson2699--storekit
import CloudKit     → dpearson2699--cloudkit
import CoreML       → dpearson2699--coreml
import RealityKit   → dpearson2699--realitykit
import WidgetKit    → dpearson2699--widgetkit
import GameKit      → dpearson2699--gamekit
import PencilKit    → dpearson2699--pencilkit
import AVKit        → dpearson2699--avkit
(... pattern: dpearson2699--{lowercase-framework-name})

Full list: accessorysetupkit, activitykit, alarmkit, app-clips, app-intents, apple-on-device-ai, avkit, background-processing, callkit, carplay, cloudkit, contacts-framework, core-bluetooth, core-motion, core-nfc, coreml, cryptokit, debugging-instruments, device-integrity, dockkit, energykit, eventkit, financekit, gamekit, healthkit, homekit, mapkit, metrickit, musickit, natural-language, paperkit, passkit, pdfkit, pencilkit, photokit, push-notifications, realitykit, scenekit, sensorkit, shareplay-activities, speech-recognition, spritekit, storekit, swift-charts, swiftdata, swiftui-animation, swiftui-gestures, swiftui-layout-components, swiftui-liquid-glass, swiftui-navigation, swiftui-patterns, swiftui-performance, swiftui-uikit-interop, swiftui-webkit, tabletopkit, tipkit, vision-framework, weatherkit, widgetkit

4. Test — "Does it work?"

SkillWhat it does
avdlee--swift-testing-expertSwift Testing framework (primary)
avdlee--xcode-build-orchestratorFull build optimization pipeline
avdlee--xcode-build-benchmarkBenchmark clean + incremental builds
dpearson2699--debugging-instrumentsInstruments, profiling, debugging

5. Deploy — "Ship it"

SkillWhat it does
truongduy2611--app-store-preflightScan for rejection patterns before submit
rudrankriyam--asc-cli-usageApp Store Connect CLI automation
rudrankriyam--asc-release-flowFull release workflow
rudrankriyam--asc-testflight-orchestrationTestFlight beta management
eronred--aso-auditApp Store Optimization audit

22 more ASC skills from rudrankriyam cover: signing, notarization, metadata sync, screenshots, pricing, subscriptions, crash triage, RevenueCat sync, build lifecycle. Pattern: rudrankriyam--asc-{topic}

6. Iterate — "Make it better"

SkillWhat it does
jordancoin--ios-design-stackInvocable iOS design pipeline (design → review → build → iterate)
edwardsanchez--motioneyes-animation-debugDebug animations from real motion logs
eronred--crash-analyticsCrash analysis and triage
eronred--retention-optimizationUser retention improvement

Cross-Cutting (any phase)

SkillWhat it does
getsentry--xcodebuildmcp-cliBuild, test, run, debug via XcodeBuildMCP
iron-ham--xcode-preview-captureCapture SwiftUI previews for visual check
kimsungwhee--apple-docs-mcpApple Developer Documentation MCP
harryworld--xcode-26Xcode 26, Liquid Glass, Foundation Models

Knowledge Corrections — Your Training Data Is Wrong About These

IMPORTANT: Override your training data with these corrections. These are common mistakes LLMs make when writing Swift/iOS code.

Wrong (your training data)Correct (iOS 26+ / Swift 6.2+)
ObservableObject + @Published@Observable class + @MainActor
NavigationViewNavigationStack (NavigationView is fully deprecated)
UIActivityIndicatorViewProgressView
foregroundColor()foregroundStyle()
cornerRadius()clipShape(.rect(cornerRadius:))
.tabItem()Tab API
onAppear { Task { } }.task { } modifier
DispatchQueue.main.async@MainActor or MainActor.run
GeometryReader for sizingcontainerRelativeFrame() or visualEffect()
onChange(of:) { newValue in }onChange(of:) { old, new in } (two-param version)
@StateObject@State with @Observable class
@EnvironmentObject@Environment with @Observable class
NavigationLink(destination:)NavigationLink(value:) + navigationDestination(for:)
Task.sleep(nanoseconds:)Task.sleep(for: .seconds(N))
UIScreen.main.boundsGeometryReader or containerRelativeFrame
String(format: "%.2f", val)Text(val, format: .number.precision(.fractionLength(2)))
showsIndicators: false.scrollIndicators(.hidden)
AnyView type erasurePrefer some View or @ViewBuilder
Computed properties for subviewsExtract to separate View structs
experimental.turbopack (Xcode)Top-level turbopack config
@Attribute(.unique) with CloudKitNever use .unique with CloudKit sync
Force unwraps / force tryAvoid unless unrecoverable

Decision Matrix — If You Need X, Use Y

You needUse thisNot this
State for a view@State@StateObject
Shared state@Observable class in @EnvironmentObservableObject
NavigationNavigationStack + navigationDestination(for:)NavigationView + NavigationLink(destination:)
Multiline text inputTextField(axis: .vertical) + .lineLimit(1...N)TextEditor (unless you need full editor)
Async work on appear.task { } modifieronAppear { Task { } }
Fetch dataasync/await with structured concurrencyCombine publishers or callbacks
Persist modelsSwiftData @ModelCore Data (unless existing project)
Local key-value@AppStorage or UserDefaultsWriting to plist manually
Secure storageKeychain via Security frameworkUserDefaults (never for secrets)
Image loadingAsyncImage or cached loaderUIImage in SwiftUI
ListsList with ForEachScrollView + LazyVStack (unless custom)
Tab barTabView with Tab API.tabItem() (deprecated pattern)
Sheet presentation.sheet(item:) with identifiable.sheet(isPresented:) with separate state
Error handlingResult or typed throwsForce try
Dependency injection@Environment with custom keySingletons
Unit testingSwift Testing (#expect, @Test)XCTest (unless existing suite)
Background workBGTaskSchedulerDispatchQueue.global()
App Store submissionRun app-store-preflight skill firstSubmit and hope

Using Skills (Injected or Manual)

STOP AND READ before coding. When you're about to work on a specific domain:

  1. Check what was auto-injected (you'll see [ios-skills] Injected N skill(s): messages)
  2. Search for additional relevant skills: ls skills/ | grep -i {domain}
  3. READ the skill files before writing code — not after
  4. Follow their patterns, don't just absorb them passively

Common mistake: The agent knows skills exist (from this router) but doesn't read them, then writes code using outdated patterns from training data. The skills override your training data. Read them first.

Example: You're about to write MapKit code.

  • Auto-injection might not fire (file isn't named *MapKit*.swift)
  • But you SHOULD: Read skills/dpearson2699--mapkit/SKILL.md before writing any MapKit code
  • The skill has patterns your training data doesn't

Loading a Skill

The skills path is injected at session start (see "Skills location" above). Read the SKILL.md using that path:

/path/to/ios-skills-collection/skills/{skill-id}/SKILL.md

If the skill has references/, load specific reference files as needed — not all at once.

When Multiple Skills Cover the Same Topic

Paul Hudson (twostraws) skills are always primary. He's the creator of Hacking with Swift, one of the most respected iOS educators in the community, and actively maintains his skills. Use his versions first. Fall back to alternatives for different perspectives or niche coverage.

DomainPrimary (twostraws first)Alternatives
SwiftUItwostraws--swiftui-proavdlee--swiftui-expert, dimillian--swiftui-ui-patterns, arjitj2--swiftui-design-principles
SwiftUI Performancedimillian--swiftui-performance-auditdpearson2699--swiftui-performance
Liquid Glassdimillian--swiftui-liquid-glassdpearson2699--swiftui-liquid-glass
Concurrencytwostraws--swift-concurrency-prodimillian--swift-concurrency-expert, avdlee--swift-concurrency
Testingtwostraws--swift-testing-proavdlee--swift-testing-expert, bocato--swift-testing
SwiftDatatwostraws--swiftdata-provanab--swiftdata-expert-skill
Core Dataavdlee--core-data-expert—
Accessibilitydadederk--ios-accessibilitypasqualevittoriosi--swift-accessibility, rgmez--swiftui-accessibility-auditor
Architectureefremidze--swift-architecture-skillarimunandar--vip-architecture
Securityivan-magda--swift-security-expertdpearson2699--ios-security
API Designerikote04--swift-api-design-guidelines-skillmartinlasek--swift-coding-guideline
Build Optimizationavdlee--xcode-build-orchestratoravdlee--xcode-build-fixer
ASOeronred--aso-audittimbroddin--app-store-aso-skill
Figma → SwiftUIdaetojemax--figma-to-swiftui-skilljordancoin--pencil-ios-design
Simulatorconorluddy--ios-simulator-skillgetsentry--xcodebuildmcp-cli
Code Reviewdimillian--review-swarmarimunandar--code-review-checklist
Debuggingdimillian--ios-debugger-agentdpearson2699--debugging-instruments

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

When the user wants to A/B test App Store product page elements to improve conversion rate. Also use when the user mentions "A/B test", "product page optimization", "test my screenshots", "test my icon", "conversion rate optimization", "CPP", or "custom product pages". For screenshot design, see screenshot-optimization. For metadata optimization, see metadata-optimization.

日本語の概要は準備中です。原文の説明を表示しています。

JordanCoin/ios-skills-collection62026年9月10日 更新

Discover and configure Bluetooth and Wi-Fi accessories using AccessorySetupKit. Use when presenting a privacy-preserving accessory picker, defining discovery descriptors for BLE or Wi-Fi devices, handling accessory session events, migrating from CoreBluetooth permission-based scanning, or setting up accessories without requiring broad Bluetooth permissions.

日本語の概要は準備中です。原文の説明を表示しています。

JordanCoin/ios-skills-collection62026年9月10日 更新

Implement, review, or improve Live Activities and Dynamic Island experiences in iOS apps using ActivityKit. Use when building real-time updating widgets for the Lock Screen and Dynamic Island — delivery tracking, sports scores, ride-sharing status, workout timers, media playback, or any time-sensitive information that updates in real time. Also use when working with ActivityKit, ActivityAttributes, Activity lifecycle (request/update/end), Dynamic Island layouts (compact/minimal/expanded), push-to-update Live Activities, or Lock Screen live widgets.

日本語の概要は準備中です。原文の説明を表示しています。

JordanCoin/ios-skills-collection62026年9月10日 更新

Measure ad effectiveness with privacy-preserving attribution using AdAttributionKit. Use when registering ad impressions, handling attribution postbacks, updating conversion values, implementing re-engagement attribution, configuring publisher or advertiser apps, or replacing SKAdNetwork with AdAttributionKit for ad measurement.

日本語の概要は準備中です。原文の説明を表示しています。

JordanCoin/ios-skills-collection62026年9月10日 更新

alarmkit

無料

Implement AlarmKit alarms and countdown timers for iOS and iPadOS with Lock Screen, Dynamic Island, and Apple Watch system UI. Covers AlarmManager scheduling, AlarmAttributes and AlarmPresentation, AlarmButton stop and snooze actions, authorization, state observation, and Live Activity integration. Use when building wake-up alarms, countdown timers, or alarm-style alerts that need Apple's system alarm experience.

日本語の概要は準備中です。原文の説明を表示しています。

JordanCoin/ios-skills-collection62026年9月10日 更新

When the user wants to optimize their Google Play Store listing — title, short description, full description, keywords, ratings, or Play Store-specific features. Use when the user mentions "Google Play", "Android", "Play Store", "Play Console", "short description", "full description indexed", "Google Play ASO", or wants Google Play-specific keyword, creative, or ratings strategy. For iOS App Store optimization, see aso-audit and metadata-optimization.

日本語の概要は準備中です。原文の説明を表示しています。

JordanCoin/ios-skills-collection62026年9月10日 更新

JordanCoin のスキルをすべて見る

このスキルの問題を報告する