Retrofit + OkHttpを使用したAPIクライアント実装のベストプラクティスを提供する。 「API実装」「APIクライアント」「Retrofit」「OkHttp」「ネットワーク」と言われたら使う。
swift-ios-migration
Migration guide for Swift and iOS. Use when migrating ObservableObject to @Observable (iOS 17), enabling Swift 6/6.2 Strict Concurrency, fixing @MainActor/Sendable warnings, adopting Approachable Concurrency (Swift 6.2), or handling iPadOS 26 windowing system changes (UIRequiresFullScreen deprecation). Covers breaking changes and version upgrade tasks.
含まれるファイル(5)
- SKILL.md5.4 KB
- references/ios17-observable.md5.6 KB
- references/ipados26-windowing.md14.0 KB
- references/swift6-concurrency.md8.1 KB
- references/swift62-changes.md5.7 KB
SKILL.md(原文)
インストールする前に、エージェントに与えられる指示の中身を確認できます。
Swift/iOS マイグレーションガイド
既存コードの移行作業やバージョンアップに伴う破壊的変更への対応ガイド。
ディレクトリ構成
swift-ios-migration/
├── SKILL.md (このファイル)
└── references/
├── ios17-observable.md # @Observable移行パターン
├── swift6-concurrency.md # Swift 6並行処理対応
├── swift62-changes.md # Swift 6.2 / Xcode 26
└── ipados26-windowing.md # iPadOS 26ウィンドウシステム
リファレンスファイル
references/ios17-observable.md
iOS 17+ @Observableマクロへの移行ガイド:
- 移行パターン: ObservableObject → @Observable
- @Bindable: @Published/@Bindingの代替
- @Environment変更: 環境値の新しい渡し方
- パフォーマンス向上: プロパティ単位の監視
- 注意点: 互換性、既存コードとの共存
references/swift6-concurrency.md
Swift 6並行処理対応ガイド:
- @MainActor: ViewModel全体への適用、UI保護
- Sendable: データモデル設計、アクター境界
- 移行チェックリスト: Strict Concurrency Checking有効化
- よくある警告と解決策:
- "Non-sendable type captured"
- "Actor-isolated property cannot be mutated"
- Actor: カスタムActorでスレッドセーフ保証
references/swift62-changes.md
Swift 6.2 / Xcode 26 移行ガイド:
- Approachable Concurrency: より使いやすい並行処理
- Default Actor Isolation: MainActorをデフォルトに
- @concurrent: 明示的なバックグラウンド実行
- Xcode 26新機能: AI Coding Tools、Playground強化
- デバッグ改善: LLDB強化、並行処理デバッグ
references/ipados26-windowing.md
iPadOS 26 ウィンドウシステム移行ガイド:
- UIRequiresFullScreen廃止: Info.plistからの削除、Auto Layout対応
- シーンジオメトリ: UIWindowScene.Geometry、effectiveGeometry、リサイズ検知
- サイズ制限: UISceneSizeRestrictions、minimumSize/maximumSize設定
- 方向ロック: prefersInterfaceOrientationLocked、方向変更監視
- メニューバー対応: SwiftUI Commands、UIMenuBuilder、キーボードショートカット
- マルチウィンドウ: UIApplicationSupportsMultipleScenes、新規ウィンドウ作成
- Trait Collection: サイズクラス対応、自動トラッキング
使用方法
iOS 17 @Observable移行時
references/ios17-observable.mdで移行パターン確認- 新規コードから
@Observableを使用開始 - 既存の小さなViewModelから段階的に移行
- 大きなViewModelは慎重に移行
Swift 6移行時
references/swift6-concurrency.mdでチェックリスト確認- Strict Concurrency Checkingを有効化
- ViewModelに
@MainActorを追加 - データモデルを
Sendableに対応 - 警告を順次解消
Swift 6.2移行時
references/swift62-changes.mdで新機能確認- Xcode 26にアップデート
- Approachable Concurrencyを有効化
- Default Actor IsolationをMainActorに設定
- 必要な箇所に
@concurrentを追加 - 既存のSwift 6コードを簡略化
iPadOS 26ウィンドウシステム対応時
references/ipados26-windowing.mdで移行チェックリスト確認UIRequiresFullScreenをInfo.plistから削除- Auto Layoutでサイズ適応レイアウトを実装
UISceneSizeRestrictionsで最小サイズを設定- メニューバー対応(外部キーボード使用時)
移行優先順位
Swift 6.2(推奨順)
- Build SettingsでApproachable Concurrencyを有効化
- Default Actor IsolationをMainActorに設定
- 必要な箇所に
@concurrentを追加 - 既存のSwift 6コードを簡略化
Swift 6(推奨順)
- ViewModelに
@MainActorを追加 - データモデルを
Sendableに対応 - 非同期処理を
async/awaitに統一
iOS 17 @Observable(推奨順)
- 新規コードから
@Observableを使用 - 既存の小さなViewModelから移行
- 大きなViewModelは慎重に移行
iPadOS 26(推奨順)
- Xcode 26でビルド・テスト
- UIRequiresFullScreenを削除
- Auto Layout対応を確認
- メニューバー実装
バージョン対応表
| 機能 | Swift 5.9 | Swift 6 | Swift 6.2 |
|---|---|---|---|
| Strict Concurrency | Opt-in | Default | Default |
| @MainActor | ✅ | ✅ | ✅ |
| Default Actor Isolation | - | - | ✅ |
| @concurrent | - | - | ✅ |
| Approachable Concurrency | - | - | ✅ |
| 機能 | iOS 16 | iOS 17 | iOS 18 | iOS 26 |
|---|---|---|---|---|
| @Observable | - | ✅ | ✅ | ✅ |
| iPadOS新ウィンドウシステム | - | - | - | ✅ |
関連スキル
- swiftui-components: UIコンポーネントカタログ
- swiftui-coding-guidelines: 基本的なベストプラクティス
- swiftui-ssot: 状態管理の設計
- swiftui-accessibility: アクセシビリティ実装
レビュー
まだレビューはありません。使ってみた感想をお寄せください。
同じリポジトリのスキル
概要と使いどころ
Androidプロジェクトのアーキテクチャ設計を支援。プロジェクト特性に応じてMVI/MVVM/シンプルComposeから最適なパターンを提案し、パッケージ構造の設計と既存プロジェクトの分析を行う。
Firebase Crashlyticsのスタックトレースを解析し、トリアージ分類→根本原因分析→修正提案を出力するスキル。/crash-analyze コマンド、クラッシュ解析、スタックトレース分析、ANR分析、Crashlytics、クラッシュレポート、またはFirebase crashに関連するリクエストで使用される。クラッシュ対応のワークフローを標準化し、対応品質と速度を向上させる。ANR/Non-fatal/Fatal全タイプ対応。
Android data layer implementation guide. Provides comprehensive patterns for Room Database (Entity, DAO, Migration), DataStore (Preferences), Repository layer design, and common pitfalls. Use when implementing local data storage, cache strategies, or data source integration in Android projects.
日本語の概要は準備中です。原文の説明を表示しています。
重要: ユーザーがAndroidテスト実行をリクエストした場合、常にこのスキルを最初に使用してください。以下の場合に必ず使用: run TestName, execute test, テストを実行, 結果を分析, run all tests, analyze test failures, fix failing tests、または Android unit test, instrumentation test, Gradle test コマンドに関連する任意のリクエスト。./gradlew test や Bash コマンドを直接使用しないでください - 常にこのスキルに委譲してください。Multi-variantプロジェクト、JAVA_HOME セットアップ、一般的なテストパターンに対応しています。
Jetpack ComposeでUIを実装する時に参照するコーディングガイドライン。 「Android UI」「Compose」「Jetpack」「画面実装」「UIコンポーネント」「レイアウト」と言われたら使う。 Android/Kotlin UI実装のベストプラクティス、アンチパターン、実装パターンを提供する。