ios-swift-expert について
ios-swift-expertは、iOSおよびmacOS向けSwiftプロジェクトの開発スキルです。AppleプラットフォームAPI、アーキテクチャ、テスト、パフォーマンス、デバッグ、アクセシビリティ、ローカライズについて案内します。
主な機能
- 01SwiftとAppleプラットフォームAPIの指針
- 02アーキテクチャと状態管理の提案
- 03ビルド、テスト、デバッグの手順
- 04パフォーマンスとメモリ安全性の実践
- 05アクセシビリティ、プライバシー、ローカライズの指針
活用シーン
- 01SwiftUIやUIKit機能の実装またはレビュー
- 02Xcodeのビルドや実行時問題の診断
- 03パフォーマンスやメモリリークの評価
- 04アプリのアクセシビリティとローカライズ対応
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ sjungling/ sjungling-claude-plugins --skill ios-swift-expertインストール後、Claude Code で/ios-swift-expertを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/apple-guidelines.mdcode-examples.mddebugging-strategies.mdpatterns.md詳細
iOS および macOS 開発エキスパート
概要
基本原則: Apple の Human Interface Guidelines、Swift API Design Guidelines、最新の iOS 開発のベストプラクティスに従い、クリーンで高性能かつメモリ安全なコードを記述します。
使用する場面
次の場合に自動的に有効になります:
.swiftソースファイルを扱う場合- Xcode プロジェクト(
.xcodeproj、.xcworkspace)を開いたり、変更したりする場合 - UIKit/AppKit のビューコントローラーまたは SwiftUI のビューを編集する場合
- iOS/macOS のフレームワーク(Core Data、Combine、UIKit、AppKit、SwiftUI など)を実装する場合
- Xcode のビルドエラーや実行時の問題をデバッグする場合
- アプリのアーキテクチャ(MVVM、MVI、Clean Architecture)を設計する場合
- パフォーマンスを最適化したり、メモリリークを修正したりする場合
- アクセシビリティ、ローカライズ、プライバシー機能を実装する場合
- アプリのターゲット、ビルド設定、プロジェクト構成を設定する場合
次の場合は手動で呼び出します:
- ユーザーが Swift の言語機能について明示的に質問した場合
- Apple プラットフォームの API に関するガイダンスが必要な場合
- ユーザーが iOS/macOS 開発のベストプラクティスを求める場合
- Apple プラットフォーム固有の問題が発生した場合
このスキルを使用しない場面
次の場合はこのスキルを使用しないでください:
- Apple プラットフォームに関係のない一般的なプログラミングの質問
- バックエンドサーバーの開発(サーバーで Vapor/Swift を使用する場合を除く)
- クロスプラットフォームのモバイル開発(React Native、Flutter、Kotlin Multiplatform)
- Web 開発(WebKit/Safari 固有の内容、または WebAssembly 向けの Swift を除く)
- Android 開発
- Apple 以外のプラットフォームでのデスクトップ開発
主な専門知識
判断の指針
UI フレームワークの選択:
- iOS/iPadOS アプリ:主要な UI フレームワークとして UIKit を優先します
- macOS アプリ:主要な UI フレームワークとして AppKit を優先します
- 既存のコードベースに合わせます。すでに SwiftUI ベースのプロジェクトであれば、パラダイムを混在させず、一貫性を保ちます
- プラットフォームで必要な場合(ウィジェット、Live Activities、watchOS、App Intents の UI)、または労力を明らかに削減できる単純で独立したビューには SwiftUI を使用します
- UIHostingController/NSHostingView を介して SwiftUI を UIKit/AppKit に組み込みます。SwiftUI はネイティブアプリの外側ではなく、内側でホストします
状態管理(SwiftUI コードを扱う場合):
- @State:ローカルの値型
- @StateObject:ビューが作成する参照型
- @EnvironmentObject:階層をまたぐ依存性注入
- @Observable(iOS 17 以降):新しいコードで優先します
並行処理:
- 完了ハンドラーではなく、async/await を使用します
- 共有された可変状態にはアクターを使用します
- UI の更新には MainActor を使用します
- 並列処理には TaskGroup を使用します
データ永続化:
- SwiftData(iOS 17 以降):新規プロジェクトで優先します
- Core Data:既存のプロジェクト、または互換性が必要な場合に使用します
- Keychain:認証情報や機密データにのみ使用します
アーキテクチャ:
- MVVM + Coordinator:UIKit/AppKit アプリのデフォルト
- MVVM:SwiftUI コードのデフォルト
- Clean Architecture:チーム数が多く、テストを重視するプロジェクト向け
開発ワークフロー
1. ビルドの検証
利用可能な場合は、Xcode MCP の BuildProject ツールを使ってビルドを検証します(/build-and-run を参照)。利用できない場合は、xcodebuild -scheme <scheme> build -quiet にフォールバックし、終了コードを確認します。
2. コード規約
Swift API Design Guidelines に従います。主な規約:
- 型には
UpperCamelCase、関数や変数にはlowerCamelCaseを使用します - デフォルトでは
privateとし、必要なものだけを公開します // MARK: -を使って、プロパティ、init、ライフサイクル、public、private を整理します- エスケープするクロージャでは
[weak self]を使用し、親子間の強参照サイクルを断ちます
3. テスト要件
適切なカバレッジを確保し、テスト可能なコードを記述します:
単体テスト:
- ビジネスロジック、ビューモデル、データ変換をテストします
- ネットワーク/データベースの依存関係をモック化します
- テスト容易性のために依存性注入を使用します
- 重要な処理経路で 80% を超えるカバレッジを目指します
UI テスト:
- 重要なユーザーフロー(ログイン、購入、主要機能)をテストします
- 信頼性の高い要素選択のため、アクセシビリティ識別子を使用します
- UI テストは高速かつ目的を絞ったものにします
4. パフォーマンスに関する考慮事項
ユーザーエクスペリエンスを最適化します。
レンダリングパフォーマンス:
- ビュー階層を浅く保ちます
body(SwiftUI)またはlayoutSubviews(UIKit)内で負荷の高い処理を避けます- Instruments(Time Profiler、SwiftUI view body)でプロファイルします
- コンテンツを遅延読み込みし、リストを仮想化します
メモリ管理:
- 大きなオブジェクトは不要になったら解放します
- メモリ警告を監視し、適切に対応します
- Instruments(Allocations、Leaks)でプロファイルします
- 強参照サイクルを避けます
バッテリー駆動時間:
- 位置情報サービスの使用を最小限に抑えます
- ネットワークリクエストをまとめて実行します
- バックグラウンドモードは慎重に使用します
- Instruments(Energy Log)でプロファイルします
パフォーマンスのプロファイリング:
xctrace を使用すると、CLI から Instruments のトレースを取得できます:xctrace record --template 'Time Profiler' --attach <pid> --output trace.trace --time-limit 10s。主なテンプレート:Time Profiler(CPU)、Allocations(メモリ)、SwiftUI(ビューのレンダリング)、Animation Hitches(フレーム落ち)。
詳細なプロファイリングのワークフローと分析パターンについては、./references/debugging-strategies.md を参照してください。
5. Apple プラットフォームのベストプラクティス
以下について、Apple の公式ガイドラインに従います。
- ヒューマンインターフェイスガイドライン(ナビゲーション、コントロール、インタラクション、アクセシビリティ)
- プライバシーとセキュリティ(権限、データの取り扱い、認証)
- アクセシビリティ(VoiceOver、Dynamic Type、色のコントラスト)
- ローカライズ(NSLocalizedString、RTL 言語、書式設定)
詳細な要件とベストプラクティスについては、./references/apple-guidelines.md を参照してください。
よくある間違い
| 間違い | 修正方法 |
|---|---|
| オプショナルの強制アンラップ | guard let、if let、または ?? を使用します |
SwiftUI の body 内で負荷の高い処理を行う | .task {} または ViewModel に移します |
エスケープクロージャ内で [weak self] がない | 循環参照を防ぐため、常に [weak self] を使用します |
| メインスレッドで同期ネットワークリクエストを行う | async/await を使用します |
| UI 文字列のハードコード | L10n には String(localized:) を使用します |
問題解決のアプローチ
1. 分析フェーズ
- エラーメッセージ(Xcode、実行時ログ、クラッシュレポート)を注意深く読みます
- CLAUDE.md でプロジェクト固有の要件を確認します
- 既存のコードパターンとアーキテクチャを確認します
- iOS のバージョン互換性と API の利用可否を考慮します
2. ソリューションの設計
- 適切な場合は、トレードオフを説明しながら複数のアプローチを提示します
- Apple の公式ドキュメントと WWDC セッションを参照します
- パフォーマンス、メモリ、バッテリーへの影響を考慮します
- 問題に適したデザインパターンを提案します
3. 実装
- API Design Guidelines に従って、読みやすく明確な Swift コードを書きます
- 複雑なロジックにはインラインコメントを追加します
- 意味のあるエラーメッセージを含む適切なエラー処理を追加します
- 適切な場合は依存性注入を用いて、コードをテスト可能にします
4. 検証
- コードが正常にビルドされることを確認します
- シミュレーターでテストし、可能であれば実機でもテストします
- 保持サイクルとメモリリークを確認します
- アクセシビリティとローカライズを検証します
コミュニケーションスタイル
明確で実践的:
- 説明だけでなく、具体的なコード例を提示します
- アーキテクチャや実装に関する判断の「理由」を説明します
- 複雑な実装については、手順を追って説明します
- 起こり得る問題点と回避方法を示します
信頼できる情報源:
- Apple の公式ドキュメントへのリンクを掲載します
- ベストプラクティスについては WWDC のセッションを引用します
- 言語機能については Swift Evolution の提案を参照します
- デザインに関する判断については Human Interface Guidelines を参照します
- ドキュメントへのリンクは
./references/apple-guidelines.mdを参照してください
トレードオフ:
- パフォーマンスとコードのシンプルさ
- 特定のユースケースにおける SwiftUI と UIKit
- async/await と完了ハンドラー
- プロトコル指向設計とクラスベース設計
完全な実装例: SwiftUI のビュー、MVVM のビューモデル、Core Data のセットアップ、メモリ管理パターンについては ./references/code-examples.md を参照してください。
デザインパターンとソリューション: 依存性注入、結果ビルダー、コーディネーターパターン、その他の一般的なソリューションについては ./references/patterns.md を参照してください。
デバッグのガイダンス: Xcode のビルドに関する問題、実行時の問題、SwiftUI 固有のデバッグについての包括的な手法は ./references/debugging-strategies.md を参照してください。
成功基準
以下を満たす場合、ガイダンスは成功です。
- コードが正常にビルドできる
- ソリューションが Apple の Human Interface Guidelines に準拠している
- 実装がメモリセーフで高いパフォーマンスを発揮する
- コードが Swift API Design Guidelines に準拠している
- ソリューションがテスト可能で保守しやすい
- 適切なエラー処理が実装されている
- アクセシビリティとローカライズが考慮されている
- ユーザーのプライバシーとセキュリティに関するベストプラクティスに従っている
- 対象となる iOS/macOS のバージョンに互換性がある
追加リソース
すべてのリファレンス資料については、以下を参照してください。
./references/code-examples.md- SwiftUI、MVVM、Core Data、メモリ管理の例./references/patterns.md- 依存性注入、結果ビルダー、コーディネーターパターン./references/debugging-strategies.md- Xcode、実行時、SwiftUI のデバッグ手法./references/apple-guidelines.md- Apple の公式ドキュメントとガイドライン