generators について
iOS と macOS の開発者向けに、プロジェクトに合わせた Swift コードを生成するスキル集です。インフラ、UI、テストなど、アプリの共通機能を扱います。
主な機能
- 01プロジェクト構成とパターンの検出
- 02プラットフォームと Swift バージョンの判定
- 03プロバイダーを切り替えられるプロトコル設計
- 04アプリ基盤コードの生成
- 05UI とエンゲージメント機能の生成
- 06テストとリリース設定の生成
活用シーン
- 01構造化ログや分析機能の追加
- 02認証やデータ永続化の構築
- 03オンボーディング、設定、ペイウォールUIの生成
- 04テストと CI/CD ワークフローの準備
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ rshankras/ claude-code-apple-skills --skill generatorsインストール後、Claude Code で/generatorsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
accessibility-generator/accessibility-patterns.mdaccount-deletion/templates.mdanalytics-setup/analytics-patterns.mdanalytics-setup/templates/AnalyticsEvent.swiftAnalyticsService.swiftAnalyticsServiceKey.swiftanalytics-setup/templates/Providers/FirebaseAnalytics.swiftNoOpAnalytics.swiftTelemetryDeckAnalytics.swiftannouncement-banner/templates.mdapp-clip/patterns.mdtemplates.mdapp-extensions/templates.mdapp-icon-generator/apple-hig-icons.mdapp-icon-generator/templates/generate-icon-template.swiftapp-store-assets/specs-reference.mdauth-flow/auth-patterns.mdauth-flow/templates/AuthenticationManager.swiftBiometricAuthManager.swiftKeychainManager.swiftSignInWithAppleButton.swiftSignInWithAppleManager.swiftbackground-processing/templates.mdci-cd-setup/ci-cd-patterns.mdci-cd-setup/templates/fastlane/AppfileFastfileMatchfileci-cd-setup/templates/github-actions/build-test.ymldeploy-appstore.ymldeploy-testflight.yml詳細
コードジェネレーター
iOS および macOS アプリ向けの本番環境対応コードジェネレーターです。アドバイスを提供するスキル(レビュー、監査)とは異なり、プロジェクトに合わせた動作するコードを生成します。
このスキルが有効になるタイミング
ユーザーが次のような場合に、このスキルを使用します。
- 一般的なアプリのコンポーネント(ロギング、アナリティクス、オンボーディングなど)を追加したい
- インフラストラクチャコードを「セットアップ」または「追加」したい
- print() を適切なロギングに置き換えることに言及している
- App Store のレビュー依頼を追加したい
- アナリティクスまたはクラッシュレポートのセットアップが必要
主な原則
1. コンテキストを考慮した生成
コードを生成する前に、スキルは次のことを行います。
- 既存のプロジェクト構成とパターンを読み取る
- デプロイメントターゲットと Swift のバージョンを検出する
- アーキテクチャパターン(MVVM、TCA など)を特定する
- 競合を避けるため、既存の実装を確認する
2. プロトコルベースのアーキテクチャ
プロバイダーに依存するコードでは、簡単に切り替えられるようプロトコルを使用します。
protocol AnalyticsService { ... }
class TelemetryDeckAnalytics: AnalyticsService { ... }
class FirebaseAnalytics: AnalyticsService { ... }
// Change provider by swapping ONE line
3. プラットフォームの検出
スキルは iOS と macOS のどちらか、および App Store 経由か直接配布かを検出し、適切なコードを生成します。
利用可能なジェネレーター
ユーザーのニーズに応じて、関連するモジュールファイルを読み取ります。
logging-setup/
print() ステートメントを構造化された os.log/Logger に置き換えます。
- 既存の print() の使用箇所を監査
- AppLogger のインフラストラクチャを生成
- 適切なプライバシーレベルを設定して print → Logger に移行
analytics-setup/
プロバイダーを切り替え可能なプロトコルベースのアナリティクスです。
- TelemetryDeck、Firebase、Mixpanel をサポート
- テスト/プライバシー保護向けの NoOp 実装
- プロバイダーを簡単に切り替え可能
onboarding-generator/
価値を最初に体験するオンボーディング — アプリが約束する成果をユーザーが初めて実感するまで、すぐに体験できるよう案内します。
- すぐに利用できる場合と後で利用する場合に分岐し、各画面での判断は 1 つにします
- ルートの切り替えによる表示、フェーズを優先したゲーティング、既存機能への安全な再開処理
- 「後で」分岐でローカル通知を使った実装意図
- 価値体験への到達率を計測(ローカルのみ。アナリティクス SDK は不要)
- 説明を先に行うアプリ向けに、従来型のページ式/ステップ式ウェルカムカルーセルも明示的な代替手段として用意
review-prompt/
スマートな App Store レビュー依頼です。
- プラットフォームを検出(App Store 以外で配布する macOS アプリではスキップ)
- トリガー条件を設定可能
- スマートなタイミング判定
- テスト用のデバッグオーバーライド
networking-layer/
async/await を使用したプロトコルベースの API クライアントです。
- モックや切り替えに適したシンプルな APIClient プロトコル
- 型安全なエンドポイント定義
- 包括的なエラー処理
- 環境に基づく設定
auth-flow/
完全な認証フローです。
- Sign in with Apple の統合
- 生体認証(Face ID/Touch ID)
- 安全な Keychain ストレージ
- 認証情報の状態監視
paywall-generator/
StoreKit 2 のサブスクリプション用ペイウォールです。
- StoreKit 2 の完全な実装
- 商品の読み込み、購入、復元
- Environment を使用したサブスクリプションの状態管理
- 美しいペイウォール UI
settings-screen/
セクションをモジュール化した完全な設定画面です。
- @AppStorage を使用した AppSettings の一元管理
- 外観、通知、アカウント、アプリ情報、法的情報のセクション
- クロスプラットフォーム(iOS/macOS)
- 再利用可能な行コンポーネント
persistence-setup/
iCloud 同期を任意で利用できる SwiftData 永続化機能です。
- SwiftData コンテナの設定
- テスト容易性を高めるリポジトリパターン
- CloudKit/iCloud 同期(任意)
- 同期状態の監視
- マイグレーションのサポート
error-monitoring/
プロトコルベースのクラッシュ/エラーレポート機能です。
- Sentry と Firebase Crashlytics をサポート
- テスト/プライバシー保護向けの NoOp 実装
- デバッグ用のコンテキストを記録するパンくず
- ユーザーコンテキスト(匿名化)
- プロバイダーを簡単に切り替え可能
ci-cd-setup/
ビルドとデプロイを自動化する CI/CD 設定です。
- GitHub Actions ワークフロー(ビルド、テスト、TestFlight、App Store)
- Xcode Cloud のスクリプトとセットアップガイド
- 高度な自動化に対応する fastlane レーン
- コード署名とシークレット管理
- macOS の公証に対応
localization-setup/
多言語アプリ向けの国際化(i18n)基盤です。
- String Catalog(iOS 16以降、推奨)
- コンパイル時の安全性を確保する型安全な L10n enum
- 複数形と文字列補間のパターン
- RTL レイアウトのサポート
- ロケールのテストに使える SwiftUI プレビュー用ヘルパー
push-notifications/
APNs の設定を含むプッシュ通知基盤です。
- 登録と許可のフロー
- UNUserNotificationCenterDelegate の実装
- アクションボタン付きの通知カテゴリ
- 型安全なペイロード解析
- リッチ通知とサイレント通知
deep-linking/
URL スキーム、ユニバーサルリンク、App Intents を使ったディープリンクです。
- カスタム URL スキームの処理
- AASA ファイルを使ったユニバーサルリンク
- Siri とショートカット向けの App Intents
- 型安全なルート定義とナビゲーション
- Spotlight のインデックス作成サポート
test-generator/
単体テスト、統合テスト、UI テスト用のテンプレートです。
- Swift Testing(モダンなテスト手法、iOS 16以降)と XCTest のパターン
- モックオブジェクトの生成
- ViewModel とサービスのテストパターン
- ページオブジェクトパターンを使った UI テスト
preview-data-generator/
SwiftUI ビュー向けのサンプルデータと、複数のバリエーションを含む #Preview マトリックスです。
- 視覚的なエッジケース(空、長い文字列、欠損、リスト)を含む Canvas サンプルデータ
- UI プロトタイピング用のデータ状態プレビュー(読み込み済み/空/読み込み中/エラー)
- 外観、Dynamic Type、ロケール/RTL、デバイスのバリエーションマトリックス
- SwiftData のインメモリシード済みコンテナ、iOS 18 の PreviewModifier + @Previewable
- テストデータを重複させず、test-data-factory のフィクスチャを再利用
accessibility-generator/
すべてのユーザーが使いやすいアプリのためのアクセシビリティ基盤です。
- VoiceOver のラベル、ヒント、特性
- Dynamic Type に対応した拡大表示
- 視差効果を減らす設定への対応
- アクセシビリティ監査チェックリスト
widget-generator/
ホーム画面とロック画面向けの WidgetKit ウィジェットです。
- 静的ウィジェットとインタラクティブウィジェット(iOS 17以降)
- タイムラインプロバイダー
- ロック画面のコンプリケーション
- 構成用のウィジェットインテント
app-icon-generator/
CoreGraphics を使ったプログラムによるアプリアイコン生成です。
- Apple HIG に準拠したアイコンデザイン
- カテゴリに応じたデザインレシピ(生産性、メディア、開発ツールなど)
- ユーザーが選べる3種類のバリエーションを生成
- 必要なすべてのサイズ(macOS + iOS)に自動リサイズ
- 正しい Contents.json を使ったアセットカタログへのインストール
- 外部依存関係なし — CoreGraphics のみを使用
feature-flags/
ローカルとリモートに対応したフィーチャーフラグ基盤です。
- プロバイダーを差し替えられるプロトコルベースのサービス
- リモートで上書き可能なローカルのデフォルト値(複合プロバイダー)
- SwiftUI 統合用の @Observable マネージャー
- フラグを切り替えるデバッグメニュー
live-activity-generator/
Dynamic Island とロック画面に対応する ActivityKit Live Activity です。
- ActivityAttributes と ContentState の定義
- Dynamic Island のレイアウト(コンパクト表示と展開表示)
- ロック画面での表示
- APNs 経由のプッシュ更新サポート
- アクティビティのライフサイクル管理(開始、更新、終了)
tipkit-generator/
ルールとテストに対応した TipKit のインラインヒントとポップオーバーヒントです。
- インラインヒントとポップオーバーヒントの定義
- ルールベースの表示ロジック(パラメータルールとイベントルール)
- 表示頻度と無効化
- テストとプレビューのサポート
cloudkit-sync/
CKSyncEngine ベースの CloudKit 同期(iOS 17以降)です。
- CKSyncEngine の設定とデリゲート
- レコードゾーン管理
- 競合解決の戦略
- 共有とコラボレーションのサポート
http-cache/
Cache-Control、ETag、オフライン時のフォールバックに対応した HTTP キャッシュレイヤーです。
- Cache-Control ヘッダーの解析
- ETag/Last-Modified を使った条件付きリクエスト(304)
- stale-while-revalidate パターン
- 既存の APIClient をラップするデコレーターパターン
- オフライン時のフォールバックに使うネットワーク到達性の確認
pagination/
オフセット方式とカーソル方式に対応したページネーション基盤です。
- オフセットベースとカーソルベースのレスポンスモデル
- 状態マシン(アイドル、読み込み中、読み込み済み、エラー、取得完了)
- プリフェッチしきい値を備えた @Observable PaginationManager
- クエリをデバウンスする検索可能なページネーション
- 無限スクロール、「さらに読み込む」ボタン、状態表示ビュー
image-loading/
キャッシュ機能を備えた画像読み込みパイプラインとCachedAsyncImageビューです。
- 自動削除機能付きのNSCacheメモリーキャッシュ
- 有効期限付きのLRUディスクキャッシュ
- リクエストの重複排除に対応したアクターベースのダウンローダー
- ImageIOによるサムネイル生成
- そのまま置き換えて使えるCachedAsyncImage SwiftUIビュー
- コレクションの先読み
share-card/
ソーシャルメディアで共有できる画像カードです。
- 実績、統計、引用文の種類を備えたShareCardContentプロトコル
- ImageRendererベースのカード生成
- 設定可能なスタイル(ミニマル、ブランド、統計)
- ShareLinkとの連携とQRコードのオーバーレイ
social-export/
各ソーシャルプラットフォームに適した形式でコンテンツを書き出します。
- プラットフォームごとのフォーマット(Instagram、TikTok、X)
- プラットフォームごとのアスペクト比と解像度への対応
- ブランドオーバーレイとキャプションへの対応
- URLスキームベースの書き出しと共有シートからの書き出し
subscription-lifecycle/
StoreKit 2のサブスクリプションライフサイクル管理です。
- 猶予期間と請求再試行への対応
- 復帰促進オファーとプロモーションオファーの管理
- Transaction.updatesによるサブスクリプションステータスの監視
- アップグレード/ダウングレード経路への対応
- サブスクリプション管理用ダッシュボードUI
referral-system/
バイラル成長の仕組みを備えた紹介・招待システムです。
- 不正防止機能付きの一意なコード生成
- ディープリンクによる共有と利用登録
- 紹介者と招待されたユーザーの報酬追跡
- 紹介統計を表示するダッシュボード
watermark-engine/
ペイウォールと連携する画像用ウォーターマークオーバーレイです。
- テキスト、画像、タイル状のウォーターマークスタイル
- Retina対応のCoreGraphicsベースの描画
- サブスクリプション加入者向けのウォーターマーク削除
- SwiftUIオーバーレイとViewModifier
streak-tracker/
エンゲージメントの仕組みを備えた日次/週次の連続記録機能です。
- SwiftDataベースのアクティビティ記録
- タイムゾーンを考慮した日の境界の計算
- 連続記録の凍結/保護パス
- カレンダー形式のヒートマップとバッジビュー
- 連続記録が途切れそうなときの通知
milestone-celebration/
紙吹雪とバッジを使った実績のお祝い機能です。
- Reduce Motionに対応したCAEmitterLayerの紙吹雪
- しきい値検出機能付きのマイルストーン追跡
- 進捗リング付きのバッジコレクショングリッド
- 触覚フィードバックとの連携
whats-new/
アプリのアップデート後に表示する「新機能」画面です。
- UserDefaultsによるバージョン追跡と永続化
- ページ切り替え式のTabViewによる機能紹介
- ローカルおよびリモートのコンテンツプロバイダー
- バージョン変更時にシートとして自動表示
lapsed-user/
利用が途絶えたユーザーの検出と再エンゲージメント機能です。
- 設定可能な非アクティブ期間のしきい値(7/14/30日)
- 利用停止のカテゴリに応じたパーソナライズされた復帰体験
- 利用が途絶えたサブスクリプション加入者向けの復帰促進オファー画面
- アプリ起動時に自動検出するViewModifier
usage-insights/
ユーザー向けの利用統計とアクティビティの概要です。
- バッチ書き込みに対応したSwiftDataイベント記録
- インサイトの算出(連続記録、上位カテゴリ、傾向)
- Swift Charts連携のダッシュボード
- 共有可能な振り返りカード(Spotify Wrapped風)
variable-rewards/
ゲーミフィケーションの仕組みを備えた変動報酬システムです。
- レア度の段階を設けた、重み付け確率による報酬プール
- 毎日のルーレットとミステリーボックスのアニメーション
- 健全なエンゲージメントのための、日次/週次の上限
- 報酬履歴と通知ビュー
consent-flow/
GDPR/CCPA/DPDPに対応したプライバシー同意管理です。
- カテゴリごとの詳細な同意(分析、マーケティングなど)
- ATT(App Tracking Transparency)との連携
- コンプライアンス対応のための同意監査ログ
- 同等の目立ちやすさを備えたバナーと設定UI
account-deletion/
Appleの要件に準拠したアカウント削除フローです。
- 再認証を伴う複数ステップの確認
- 削除前のデータ書き出し
- キャンセル可能な猶予期間
- KeychainのクリーンアップとSign in with Appleの連携解除
permission-priming/
許可率の向上を目的とした、許可要求前の案内画面です。
- 統合型の権限管理機能(通知、カメラ、位置情報など)
- システムの許可要求前に表示する、メリットを重視した案内UI
- 「設定」へのリダイレクトを備えた権限ステータスの追跡
- コンテンツへのアクセスを制御するViewModifier
force-update/
更新プロンプトを伴う最低バージョンの適用。
- リモート JSON と App Store の照会によるバージョン確認
- ハードブロック(必須)とソフトプロンプト(推奨)
- 確認頻度の設定
- ソフト更新のスキップ状況を追跡
state-restoration/
アプリの起動をまたいだ状態の保持と復元。
- NavigationPath、タブの選択状態、スクロール位置の永続化
- デバウンス付き自動保存機能を備えた Codable AppState
- 自動保存機能を備えたフォーム下書きマネージャー
- @SceneStorage とファイルベースのストレージオプション
debug-menu/
開発者向けデバッグメニュー(DEBUG ビルドのみ)。
- 機能フラグの切り替えと環境スイッチャー
- 循環バッファを備えたネットワークリクエストロガー
- キャッシュの消去と診断情報のエクスポート
- シェイクジェスチャーと隠しタップトリガー
offline-queue/
自動再試行機能を備えたオフライン操作キュー。
- FIFO と優先度に対応したアクターベースのキューマネージャー
- キューに入れた操作のファイルベースの永続化
- ジッター付き指数バックオフ再試行ポリシー
- NWPathMonitor による接続状況の検出
- オフライン状態バナー用 ViewModifier
feedback-form/
スマートな振り分け機能を備えたアプリ内フィードバック収集。
- カテゴリ別フィードバック(バグ、機能、称賛)
- スクリーンショットのキャプチャと注釈
- 感情に応じた振り分け(満足 → App Store、不満 → サポート)
- メールと Webhook による送信
announcement-banner/
リモート設定に対応したアプリ内お知らせバナー。
- 優先度に基づくバナー表示(情報、警告、プロモーション)
- ローカルおよびリモートのお知らせプロバイダー
- ディープリンクと URL アクションの処理
- 日付範囲を指定したスケジュール表示
quick-win-session/
価値をすばやく実感できる、初回アクションのガイド付きフロー。
- ステップごとのタスクガイド
- 円形の切り抜きによるスポットライトヒントのオーバーレイ
- タイミング統計を含む完了時のお祝い
- 新規ユーザー検出用 ViewModifier
spotlight-indexing/
システム検索との連携に向けた Core Spotlight のインデックス作成。
- 任意のモデルで使える SpotlightIndexable プロトコル
- アクターベースの一括インデックスマネージャー
- 流れるように記述できる属性ビルダー API
- 検索の継続と Siri の提案
app-clip/
呼び出しとアップグレードのフローを備えた App Clip ターゲット。
- 呼び出し URL の解析とルーティング
- 具象実装を備えた Experience プロトコル
- 物理的な呼び出しに対する位置確認
- フルアプリへのアップグレードを促す SKOverlay
- App Group によるデータ共有
screenshot-automation/
App Store 用スクリーンショットの自動生成。
- ナビゲーションに対応した XCUITest ベースの画面キャプチャ
- CoreText を使ったローカライズ済みキャプションのオーバーレイ
- デバイスフレームの合成
- 複数のロケールとデバイスに対応した一括エクスポート
background-processing/
BGTaskScheduler を使ったバックグラウンドタスクの基盤。
- BGAppRefreshTask と BGProcessingTask の設定
- ダウンロードとアップロード用のバックグラウンド URLSession
- サイレントプッシュ通知の処理
- 省電力なスケジューリング戦略
app-extensions/
Share、Action、Keyboard、Safari 用のアプリ拡張ターゲット。
- コンテンツ処理に対応した Share Extension
- コンテンツをその場で操作する Action Extension
- UIInputViewController を使った Keyboard Extension
- メッセージハンドラーを備えた Safari Web Extension
- アプリと拡張機能の間での App Group によるデータ共有
data-export/
JSON、CSV、PDF に対応したデータのエクスポート/インポート基盤。
- プロトコルベースの複数形式エクスポート(DataExportable)
- RFC 4180 に準拠した CSV 生成
- UIGraphicsPDFRenderer を使った PDF レポート生成
- UTType に基づく解析によるファイルのインポート
- GDPR 第 20 条のデータポータビリティ要件への準拠
使用方法
- ユーザーがコンポーネントをリクエストします(例:「アプリにロギングを追加して」)
- 関連するスキルの SKILL.md を読みます
- 生成前の確認を実行します(競合、デプロイメントターゲットなど)
- AskUserQuestion で設定に関する質問をします
- テンプレートからコードを生成し、プロジェクトの状況に合わせて調整します
- 組み込み手順を提示します
出力形式
生成後は、必ず次の項目を提示してください。
- 作成したファイル(完全なパスを記載)
- 組み込み手順(既存のコードへの接続方法)
- 必要な機能(エンタイトルメント、依存関係)
- テスト手順(動作確認の方法)