Communitygithub.com

JordanCoin/ios-skills-collection

iOS、macOS、Swift、SwiftUI、Xcode、Appleプラットフォームのプロジェクトでは常に使用します。開発フェーズとタスクコンテキストに基づいて適切な専門スキルにルーティングします。28名の著者による210のスキルを含み、iOS開発ライフサイクル全体をカバーします。

ios-skills-collection とは?

これはiOS/Swift/Xcode開発のための200以上の専門スキルを束ねたルーター兼ナレッジベースです。開発の構想、設計、開発、テスト、デプロイ、反復の各フェーズに対応したスキルを提供し、76のAppleフレームワーク(MapKit、HealthKit、StoreKitなど)ごとのスキルも含みます。重要なのは、コードを書き始める前に必ず該当スキルを読み込むことで、LLMの訓練データに含まれる古いパターン(例:NavigationViewの代わりにNavigationStackを使うなど)を上書きできる点です。このスキルはClaude Code、Coder、Cursor、Codex、Continue.dev、WindsurfなどのAIエージェントで動作し、自動インジェクションまたは手動ロードによって利用します。

対応✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/JordanCoin/ios-skills-collection/tree/HEAD/skills/_router

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

iOSスキルルーター

あなたはiOS/Swift/Xcode開発のための200以上の専門スキルにアクセスできます。 スキルはファイル編集やコマンド実行時にフックによって自動注入されますが、任意のスキルを手動で読み込むこともできます(SKILL.mdを読んでください)。

重要: コーディング開始前に積極的にスキルを読み込むこと

関連スキルを確認せずにコーディングを開始しないでください。 これはこのルーターの中で最も重要な指示です。

特定のフレームワーク、ドメイン、パターンに触れるコードを書く前に:

  1. インポートを確認 — ファイルが MapKit、HealthKit、StoreKit などをインポートしている場合、コードを書く前に skills/dpearson2699--{framework}/SKILL.md を読んでください。
  2. ドメインを確認 — ネットワーキングコードを書いているなら、ネットワーキングスキルを読んでください。並行処理を書いているなら、並行処理スキルを読んでください。推測しないでください。
  3. サードパーティフレームワークを確認 — プロジェクトがMapbox、Firebase、Supabaseなどを使用している場合、コレクションに対応するスキルがあるか確認してください。 ls skills/ | grep {名前}
  4. 不明な場合は検索 — ls skills/ | grep -i {キーワード} で関連スキルを見つけてください。

スキルはコーディング前に読んで初めて役立ちます。自動インジェクションは一般的なファイルパターンを処理しますが、ドメイン固有の作業には積極的にスキルを読み込む必要があります。

ルーティングの仕組み

  1. 自動インジェクション: フックが、一致するファイルパターン(ビュー、テスト、モデル、マネージャー、ネットワーキングなど)を編集したり、コマンド(xcodebuild、swift test、asc)を実行したりすると、自動的にスキルを注入します。
  2. 積極的な読み込み: 特定のフレームワークやドメインのコードを書く前に、あなた自身がスキルを読む必要があります。フックはすべてを把握できるわけではありません。import MapKit を見たら、MapKitスキルを読んでください。
  3. フレームワークルックアップ: Appleのフレームワークについては、skills/dpearson2699--{framework}/SKILL.md を確認してください。
  4. 検索: ls skills/ | grep -i {キーワード} でトピック別にスキルを検索してください。

フェーズ

1. 構想 — 「何を構築すべきか?」

スキル説明
eronred--competitor-analysis競合アプリの解体分析
eronred--market-pulse市場トレンド分析
eronred--keyword-researchApp Storeキーワード発見

2. 設計 — 「どのように見せ、感じさせるか?」

スキル説明
jordancoin--design-philosophyセンスを磨く、Dieter Ramsの原則
jordancoin--pencil-ios-designiOS Pencil MCPデザインワークフローとHIGパターン
dadederk--ios-accessibilityVoiceOver、Dynamic Type、支援技術
pasqualevittoriosi--swift-accessibilityWCAG 2.2、App Store栄養ラベル

3. 開発 — 「構築する」

コア(.swiftファイルで自動注入):

スキル説明
twostraws--swiftui-proSwiftUIベストプラクティス(優先)
twostraws--swift-concurrency-proasync/await、アクター、Sendable
twostraws--swiftdata-proSwiftData永続化
martinlasek--swift-coding-guidelineSwiftコーディング規約
avdlee--core-data-expertCore Dataスタック、マイグレーション、スレッド

アーキテクチャ:

スキル説明
arimunandar--vip-architectureVIP+Wクリーンアーキテクチャ
arimunandar--uikit-layoutingUIKit水平ファーストレイアウト
arimunandar--legacy-migrationUIKit → SwiftUI移行

76のフレームワークスキル — インポートを見つけたら読み込んでください:

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
(... パターン: dpearson2699--{小文字フレームワーク名})

完全なリスト: 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. テスト — 「動作するか?」

スキル説明
avdlee--swift-testing-expertSwift Testingフレームワーク(優先)
avdlee--xcode-build-orchestratorビルド最適化パイプライン全体
avdlee--xcode-build-benchmarkクリーンビルド+インクリメンタルビルドのベンチマーク
dpearson2699--debugging-instrumentsInstruments、プロファイリング、デバッグ

5. デプロイ — 「リリースする」

スキル説明
truongduy2611--app-store-preflight提出前にリジェクトパターンをスキャン
rudrankriyam--asc-cli-usageApp Store Connect CLI自動化
rudrankriyam--asc-release-flowリリースワークフロー全体
rudrankriyam--asc-testflight-orchestrationTestFlightベータ管理
eronred--aso-auditApp Store最適化監査

rudrankriyamによるさらに22のASCスキルが対象: 署名、公証、メタデータ同期、 スクリーンショット、価格設定、サブスクリプション、クラッシュトリアージ、RevenueCat同期、 ビルドライフサイクル。 パターン: rudrankriyam--asc-{トピック}

6. 反復 — 「より良くする」

スキル説明
jordancoin--ios-design-stack呼び出し可能なiOSデザインパイプライン(デザイン→レビュー→構築→反復)
edwardsanchez--motioneyes-animation-debug実際のモーションログからアニメーションをデバッグ
eronred--crash-analyticsクラッシュ分析とトリアージ
eronred--retention-optimizationユーザー維持率の改善

横断的(全フェーズ)

スキル説明
getsentry--xcodebuildmcp-cliXcodeBuildMCP経由でビルド、テスト、実行、デバッグ
iron-ham--xcode-preview-capture視覚確認用にSwiftUIプレビューをキャプチャ
kimsungwhee--apple-docs-mcpApple Developer Documentation MCP
harryworld--xcode-26Xcode 26、Liquid Glass、Foundation Models

知識の修正 — あなたの訓練データはこれらについて誤っています

重要: 以下の修正で訓練データを上書きしてください。これらはLLMがSwift/iOSコードを書く際によく犯す間違いです。

誤り(訓練データ)正しい(iOS 26+ / Swift 6.2+)
ObservableObject + @Published@Observable クラス + @MainActor
NavigationViewNavigationStack(NavigationViewは完全に非推奨)
UIActivityIndicatorViewProgressView
foregroundColor()foregroundStyle()
cornerRadius()clipShape(.rect(cornerRadius:))
.tabItem()Tab API
onAppear { Task { } }.task { } 修飾子
DispatchQueue.main.async@MainActor または MainActor.run
サイズ決定のための GeometryReadercontainerRelativeFrame() または visualEffect()
onChange(of:) { newValue in }onChange(of:) { old, new in }(2パラメータ版)
@StateObject@State + @Observable クラス
@EnvironmentObject@Environment + @Observable クラス
NavigationLink(destination:)NavigationLink(value:) + navigationDestination(for:)
Task.sleep(nanoseconds:)Task.sleep(for: .seconds(N))
UIScreen.main.boundsGeometryReader または containerRelativeFrame
String(format: "%.2f", val)Text(val, format: .number.precision(.fractionLength(2)))
showsIndicators: false.scrollIndicators(.hidden)
AnyView 型消去some View または @ViewBuilder を推奨
サブビューのための算出プロパティ個別の View 構造体に抽出
experimental.turbopack(Xcode)トップレベル turbopack 設定
CloudKitでの @Attribute(.unique)CloudKit同期では .unique を絶対に使用しない
強制アンラップ / 強制try回復不能な場合を除き避ける

判断マトリックス — Xが必要ならYを使用

必要なものこれを使用これを使用しない
ビューの状態@State@StateObject
共有状態@Environment内の @Observable クラスObservableObject
ナビゲーションNavigationStack + navigationDestination(for:)NavigationView + NavigationLink(destination:)
複数行テキスト入力TextField(axis: .vertical) + .lineLimit(1...N)TextEditor(フルエディタが必要な場合を除く)
表示時の非同期処理.task { } 修飾子onAppear { Task { } }
データ取得構造化並行処理を使った async/awaitCombineパブリッシャーまたはコールバック
モデルの永続化SwiftData @ModelCore Data(既存プロジェクトでない限り)
ローカルキーバリュー@AppStorage または UserDefaultsplistへの手動書き込み
安全なストレージSecurityフレームワーク経由のキーチェーンUserDefaults(秘密情報には絶対に使わない)
画像読み込みAsyncImage またはキャッシュローダーSwiftUIでのUIImage
リストForEach を使った ListScrollView + LazyVStack(カスタムの場合を除く)
タブバーTab APIを使った TabView.tabItem()(非推奨パターン)
シート表示識別可能なオブジェクトを使った .sheet(item:)別の状態を使った .sheet(isPresented:)
エラーハンドリングResult または型付きthrows強制try
依存性注入カスタムキーを使った @Environmentシングルトン
単体テストSwift Testing(#expect、@Test)XCTest(既存スイートでない限り)
バックグラウンド処理BGTaskSchedulerDispatchQueue.global()
App Store提出最初に app-store-preflight スキルを実行提出して祈る

スキルの使用(注入または手動)

コーディングの前に停止して読むこと。 特定のドメインで作業を始めようとしている場合:

  1. 自動注入されたものを確認する([ios-skills] 注入されたN個のスキル: メッセージが表示されます)
  2. 追加の関連スキルを検索する: ls skills/ | grep -i {ドメイン}
  3. コードを書く前にスキルファイルを読む — 後で読まない
  4. パターンに従う — 受動的に吸収するだけでなく、実際に従う

よくある間違い: エージェントは(このルーターから)スキルの存在を知っているが読まず、訓練データの古いパターンを使ってコードを書く。スキルは訓練データを上書きします。最初に読んでください。

例: MapKitコードを書こうとしているとします。

  • 自動注入は発動しないかもしれません(ファイル名が *MapKit*.swift ではない場合)
  • しかしあなたはすべき: MapKitコードを書く前に Read skills/dpearson2699--mapkit/SKILL.md を読む
  • スキルには訓練データにはないパターンが含まれています

スキルの読み込み

スキルパスはセッション開始時に注入されます(上記「スキルの場所」を参照)。 そのパスを使ってSKILL.mdを読んでください:

/path/to/ios-skills-collection/skills/{スキルID}/SKILL.md

スキルに references/ がある場合、必要に応じて特定の参照ファイルをロードしてください — 一度にすべてロードする必要はありません。

複数のスキルが同じトピックをカバーする場合

Paul Hudson (twostraws) のスキルは常に優先です。 彼はHacking with Swiftの作成者であり、コミュニティで最も尊敬されているiOS教育者の一人であり、スキルを積極的にメンテナンスしています。彼のバージョンを最初に使用してください。別の視点やニッチなカバレッジが必要な場合は、代替案にフォールバックしてください。

ドメイン優先(twostrawsが最初)代替案
SwiftUItwostraws--swiftui-proavdlee--swiftui-expert, dimillian--swiftui-ui-patterns, arjitj2--swiftui-design-principles
SwiftUI パフォーマンスdimillian--swiftui-performance-auditdpearson2699--swiftui-performance
Liquid Glassdimillian--swiftui-liquid-glassdpearson2699--swiftui-liquid-glass
並行処理twostraws--swift-concurrency-prodimillian--swift-concurrency-expert, avdlee--swift-concurrency
テストtwostraws--swift-testing-proavdlee--swift-testing-expert, bocato--swift-testing
SwiftDatatwostraws--swiftdata-provanab--swiftdata-expert-skill
Core Dataavdlee--core-data-expert—
アクセシビリティdadederk--ios-accessibilitypasqualevittoriosi--swift-accessibility, rgmez--swiftui-accessibility-auditor
アーキテクチャefremidze--swift-architecture-skillarimunandar--vip-architecture
セキュリティivan-magda--swift-security-expertdpearson2699--ios-security
API設計erikote04--swift-api-design-guidelines-skillmartinlasek--swift-coding-guideline
ビルド最適化avdlee--xcode-build-orchestratoravdlee--xcode-build-fixer
ASOeronred--aso-audittimbroddin--app-store-aso-skill
Figma → SwiftUIdaetojemax--figma-to-swiftui-skilljordancoin--pencil-ios-design
シミュレータconorluddy--ios-simulator-skillgetsentry--xcodebuildmcp-cli
コードレビューdimillian--review-swarmarimunandar--code-review-checklist
デバッグdimillian--ios-debugger-agentdpearson2699--debugging-instruments

Individual skills in this repo

This repo contains 11 individual skills — each has its own dedicated page.

JordanCoin/ios-skills-collection

Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries. Use when the user asks about GitHub issues, pull requests, workflows, or wants to interact with GitHub repositories from the command line — including tasks like check CI status, create PR, list issues, or query the GitHub API.

JordanCoin/ios-skills-collection

Create media playback experiences using AVKit. Use when adding video players with AVPlayerViewController, enabling Picture-in-Picture, routing media with AirPlay, using SwiftUI VideoPlayer views, configuring transport controls, displaying subtitles and closed captions, or integrating AVFoundation playback with system UI.

JordanCoin/ios-skills-collection

Integrate and optimize Core ML models in iOS apps for on-device machine learning inference. Covers model loading (.mlmodelc, .mlpackage), predictions with auto-generated classes and MLFeatureProvider, compute unit configuration (CPU, GPU, Neural Engine), MLTensor, VNCoreMLRequest, MLComputePlan, multi-model pipelines, and deployment strategies. Use when loading Core ML models, making predictions, configuring compute units, or profiling model performance.

JordanCoin/ios-skills-collection

Implement, review, or improve maps and location features in iOS/macOS apps using MapKit and CoreLocation. Use when working with Map views, annotations, markers, polylines, user location tracking, geocoding, reverse geocoding, search/autocomplete, directions and routes, geofencing, region monitoring, CLLocationUpdate async streams, or location authorization flows. Also use when working with maps, coordinates, addresses, places, directions, distance calculations, or location-based features in Swift apps.

JordanCoin/ios-skills-collection

Display and manipulate PDF documents using PDFKit. Use when embedding PDFView to show PDF files, creating or modifying PDFDocument instances, adding annotations (highlights, notes, signatures), extracting text with PDFSelection, navigating pages, generating thumbnails, filling PDF forms, or wrapping PDFView in SwiftUI.

JordanCoin/ios-skills-collection

Implement, review, or improve in-app tips and onboarding using Apple's TipKit framework. Use when adding feature discovery tooltips, onboarding flows, contextual tips, first-run experiences, coach marks, or working with Tip protocol, TipView, popoverTip, tip rules, tip events, or feature education UI.

JordanCoin/ios-skills-collection

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-collection

When the user wants to implement, optimize, or use App Clips for app discovery and conversion. Use when the user mentions "App Clip", "app clip code", "mini app", "instant app", "App Clip card", "App Clip link", "no download required", "instant experience", or wants to understand how App Clips appear in App Store search. For general App Store discoverability, see aso-audit. For marketing campaigns, see ua-campaign.

JordanCoin/ios-skills-collection

When the user wants to plan a launch strategy for a new app or major update. Also use when the user mentions "app launch", "launch plan", "launch checklist", "pre-launch", "launch day", or "how to launch my app". For ongoing ASO after launch, see aso-audit. For paid acquisition during launch, see ua-campaign.

JordanCoin/ios-skills-collection

When the user wants to analyze their own app's actual performance data from App Store Connect — real downloads, revenue, IAP, subscriptions, trials, or country breakdowns synced via Appeeky Connect. Use when the user asks about "my downloads", "my revenue", "how is my app performing", "ASC data", "sales and trends", "my subscription numbers", "App Store Connect metrics", or wants to compare periods or top markets. For third-party app estimates, see app-analytics. For subscription analytics depth, see monetization-strategy.

JordanCoin/ios-skills-collection

When the user wants a full ASO health audit, review their App Store listing quality, or diagnose why their app isn't ranking. Also use when the user mentions "ASO audit", "ASO score", "why am I not ranking", "listing review", or "optimize my app store page". For keyword-specific research, see keyword-research. For metadata writing, see metadata-optimization.

関連スキル