mcpField
I
ios-swift-expert

ios-swift-expert

github.com/sjungling開発1486 回インストール1 日前に更新
リポジトリ

ios-swift-expert について

ios-swift-expertは、iOSおよびmacOS向けSwiftプロジェクトの開発スキルです。AppleプラットフォームAPI、アーキテクチャ、テスト、パフォーマンス、デバッグ、アクセシビリティ、ローカライズについて案内します。

主な機能

  1. 01SwiftとAppleプラットフォームAPIの指針
  2. 02アーキテクチャと状態管理の提案
  3. 03ビルド、テスト、デバッグの手順
  4. 04パフォーマンスとメモリ安全性の実践
  5. 05アクセシビリティ、プライバシー、ローカライズの指針

活用シーン

  1. 01SwiftUIやUIKit機能の実装またはレビュー
  2. 02Xcodeのビルドや実行時問題の診断
  3. 03パフォーマンスやメモリリークの評価
  4. 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.md
code-examples.md
debugging-strategies.md
patterns.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 の公式ドキュメントとガイドライン

コメント