ios-application-dev
iOS application development guide covering UIKit, SnapKit, and SwiftUI. Includes touch targets, safe areas, navigation patterns, Dynamic Type, Dark Mode, accessibility, collection views, common UI components, and SwiftUI design guidelines. For detailed references on specific topics, see the reference files. Use when: developing iOS apps, implementing UI, reviewing iOS code, working with UIKit/SnapKit/SwiftUI layouts, building iPhone interfaces, Swift mobile development, Apple HIG compliance, iOS accessibility implementation.
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o ios-application-dev.zip https://jpskill.com/download/19698.zip && unzip -o ios-application-dev.zip && rm ios-application-dev.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/19698.zip -OutFile "$d\ios-application-dev.zip"; Expand-Archive "$d\ios-application-dev.zip" -DestinationPath $d -Force; ri "$d\ios-application-dev.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
ios-application-dev.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
ios-application-devフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-18
- 取得日時
- 2026-05-18
- 同梱ファイル
- 10
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
iOSアプリケーション開発ガイド
UIKit、SnapKit、およびSwiftUIを使用してiOSアプリケーションを構築するための実践的なガイドです。実績のあるパターンとAppleプラットフォームの慣習に焦点を当てています。
クイックリファレンス
UIKit
| 目的 | コンポーネント |
|---|---|
| メインセクション | UITabBarController |
| ドリルダウン | UINavigationController |
| 集中タスク | シートプレゼンテーション |
| 重要な選択 | UIAlertController |
| セカンダリアクション | UIContextMenuInteraction |
| リストコンテンツ | UICollectionView + DiffableDataSource |
| セクション付きリスト | DiffableDataSource + headerMode |
| グリッドレイアウト | UICollectionViewCompositionalLayout |
| 検索 | UISearchController |
| 共有 | UIActivityViewController |
| 位置情報 (一度だけ) | CLLocationButton |
| フィードバック | UIImpactFeedbackGenerator |
| 線形レイアウト | UIStackView |
| カスタムシェイプ | CAShapeLayer + UIBezierPath |
| グラデーション | CAGradientLayer |
| モダンなボタン | UIButton.Configuration |
| 動的テキスト | UIFontMetrics + preferredFont |
| ダークモード | セマンティックカラー (.systemBackground, .label) |
| 権限 | コンテキストに応じたリクエスト + AVCaptureDevice |
| ライフサイクル | UIApplication 通知 |
SwiftUI
| 目的 | コンポーネント |
|---|---|
| メインセクション | TabView + tabItem |
| ドリルダウン | NavigationStack + NavigationPath |
| 集中タスク | .sheet + presentationDetents |
| 重要な選択 | .alert |
| セカンダリアクション | .contextMenu |
| リストコンテンツ | List + .insetGrouped |
| 検索 | .searchable |
| 共有 | ShareLink |
| 位置情報 (一度だけ) | LocationButton |
| フィードバック | UIImpactFeedbackGenerator |
| 進捗 (既知) | ProgressView(value:total:) |
| 進捗 (不明) | ProgressView() |
| 動的テキスト | .font(.body) セマンティックスタイル |
| ダークモード | .primary, .secondary, Color(.systemBackground) |
| シーンライフサイクル | @Environment(\.scenePhase) |
| 動きを減らす | @Environment(\.accessibilityReduceMotion) |
| ダイナミックタイプ | @Environment(\.dynamicTypeSize) |
コア原則
レイアウト
- タッチターゲットは44pt以上
- コンテンツはセーフエリア内(SwiftUIはデフォルトで尊重、背景にのみ
.ignoresSafeArea()を使用) - 8pt間隔の増分(8, 16, 24, 32, 40, 48)を使用
- 主要なアクションは親指ゾーンに配置
- すべての画面サイズをサポート(iPhone SE 375ptからPro Max 430ptまで)
タイポグラフィ
- UIKit:
preferredFont(forTextStyle:)+adjustsFontForContentSizeCategory = true - SwiftUI: セマンティックテキストスタイル
.headline,.body,.caption - カスタムフォント:
UIFontMetrics/Font.custom(_:size:relativeTo:) - アクセシビリティサイズでレイアウトを調整(最小11pt)
色
- セマンティックシステムカラーを使用(
.systemBackground,.label,.primary,.secondary) - カスタムカラーにはアセットカタログのバリアントを使用(Any/Dark Appearance)
- 色のみの情報は避ける(アイコンまたはテキストと組み合わせる)
- 通常のテキストのコントラスト比は4.5:1以上、大きなテキストは3:1以上
アクセシビリティ
- アイコンボタンにラベルを付ける(
.accessibilityLabel()) - 動きを減らす設定を尊重する(
@Environment(\.accessibilityReduceMotion)) - 論理的な読み上げ順序(
.accessibilitySortPriority()) - 太字テキスト、コントラスト増加の設定をサポートする
ナビゲーション
- タブバー(3〜5セクション)はナビゲーション中も表示されたままにする
- スワイプで戻る機能が動作する(システムジェスチャを上書きしない)
- タブ間で状態が保持される(
@SceneStorage,@State) - ハンバーガーメニューは絶対に使用しない
プライバシーと権限
- 権限はコンテキスト内で要求する(起動時ではない)
- システムダイアログの前にカスタムの説明を表示する
- Appleでサインインをサポートする
- ATT拒否を尊重する
チェックリスト
レイアウト
- [ ] タッチターゲットは44pt以上
- [ ] コンテンツはセーフエリア内
- [ ] 主要なアクションは親指ゾーン(下半分)に配置
- [ ] すべての画面サイズ(SEからPro Max)に対応する柔軟な幅
- [ ] スペーシングは8ptグリッドに合わせる
タイポグラフィ
- [ ] セマンティックテキストスタイルまたはUIFontMetricsでスケーリングされたカスタムフォント
- [ ] アクセシビリティサイズまでダイナミックタイプをサポート
- [ ] レイアウトは大きなサイズでリフローする(切り詰めなし)
- [ ] 最小テキストサイズは11pt
色
- [ ] セマンティックシステムカラーまたはライト/ダークのアセットバリアント
- [ ] ダークモードは意図的である(単なる反転ではない)
- [ ] 色のみの情報は避ける
- [ ] テキストコントラストは4.5:1以上(通常)/ 3:1以上(大)
- [ ] インタラクティブ要素には単一のアクセントカラーを使用
アクセシビリティ
- [ ] すべてのインタラクティブ要素にVoiceOverラベル
- [ ] 論理的な読み上げ順序
- [ ] 太字テキストの設定を尊重
- [ ] 動きを減らす設定で装飾的なアニメーションを無効化
- [ ] すべてのジェスチャに代替アクセスパスがある
ナビゲーション
- [ ] 3〜5個のトップレベルセクションにタブバーを使用
- [ ] ハンバーガー/ドロワーメニューは使用しない
- [ ] タブバーはナビゲーション中も表示されたまま
- [ ] 全体でスワイプで戻る機能が動作
- [ ] タブ間で状態が保持される
コンポーネント
- [ ] アラートは重要な決定にのみ使用
- [ ] シートには閉じるパスがある(ボタンおよび/またはスワイプ)
- [ ] リスト行の高さは44pt以上
- [ ] 破壊的なボタンには
.destructiveロールを使用
プライバシー
- [ ] 権限はコンテキスト内で要求する(起動時ではない)
- [ ] システム権限ダイアログの前にカスタムの説明を表示
- [ ] 他のプロバイダと共にAppleでサインインを提供する
- [ ] アカウントなしでも基本的な機能が使用可能
- [ ] トラッキングを行う場合はATTプロンプトを表示し、拒否を尊重する
システム統合
- [ ] アプリは中断(通話、バックグラウンド、Siri)を適切に処理する
- [ ] アプリコンテンツはSpotlight用にインデックス化される
- [ ] 共有可能なコンテンツには共有シートが利用可能
参考文献
| トピック | 参考文献 |
|---|---|
| タッチターゲット、セーフエリア、CollectionView | Layout System |
| TabBar、NavigationController、Modal | Navigation Patterns |
| StackView、Button、Alert、Search、ContextMenu | UIKit Components |
| CAShapeLayer、CAGradientLayer、Core Animation | Graphics & Animation |
| ダイナミックタイプ、セマンティックカラー、VoiceOver | Accessibility |
| 権限、位置情報、共有、ライフサイクル、ハプティクス | System Integration |
| Metal Shaders & |
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
iOS Application Development Guide
A practical guide for building iOS applications using UIKit, SnapKit, and SwiftUI. Focuses on proven patterns and Apple platform conventions.
Quick Reference
UIKit
| Purpose | Component |
|---|---|
| Main sections | UITabBarController |
| Drill-down | UINavigationController |
| Focused task | Sheet presentation |
| Critical choice | UIAlertController |
| Secondary actions | UIContextMenuInteraction |
| List content | UICollectionView + DiffableDataSource |
| Sectioned list | DiffableDataSource + headerMode |
| Grid layout | UICollectionViewCompositionalLayout |
| Search | UISearchController |
| Share | UIActivityViewController |
| Location (once) | CLLocationButton |
| Feedback | UIImpactFeedbackGenerator |
| Linear layout | UIStackView |
| Custom shapes | CAShapeLayer + UIBezierPath |
| Gradients | CAGradientLayer |
| Modern buttons | UIButton.Configuration |
| Dynamic text | UIFontMetrics + preferredFont |
| Dark mode | Semantic colors (.systemBackground, .label) |
| Permissions | Contextual request + AVCaptureDevice |
| Lifecycle | UIApplication notifications |
SwiftUI
| Purpose | Component |
|---|---|
| Main sections | TabView + tabItem |
| Drill-down | NavigationStack + NavigationPath |
| Focused task | .sheet + presentationDetents |
| Critical choice | .alert |
| Secondary actions | .contextMenu |
| List content | List + .insetGrouped |
| Search | .searchable |
| Share | ShareLink |
| Location (once) | LocationButton |
| Feedback | UIImpactFeedbackGenerator |
| Progress (known) | ProgressView(value:total:) |
| Progress (unknown) | ProgressView() |
| Dynamic text | .font(.body) semantic styles |
| Dark mode | .primary, .secondary, Color(.systemBackground) |
| Scene lifecycle | @Environment(\.scenePhase) |
| Reduce motion | @Environment(\.accessibilityReduceMotion) |
| Dynamic type | @Environment(\.dynamicTypeSize) |
Core Principles
Layout
- Touch targets >= 44pt
- Content within safe areas (SwiftUI respects by default, use
.ignoresSafeArea()only for backgrounds) - Use 8pt spacing increments (8, 16, 24, 32, 40, 48)
- Primary actions in thumb zone
- Support all screen sizes (iPhone SE 375pt to Pro Max 430pt)
Typography
- UIKit:
preferredFont(forTextStyle:)+adjustsFontForContentSizeCategory = true - SwiftUI: semantic text styles
.headline,.body,.caption - Custom fonts:
UIFontMetrics/Font.custom(_:size:relativeTo:) - Adapt layout at accessibility sizes (minimum 11pt)
Colors
- Use semantic system colors (
.systemBackground,.label,.primary,.secondary) - Asset catalog variants for custom colors (Any/Dark Appearance)
- No color-only information (pair with icons or text)
- Contrast ratio >= 4.5:1 for normal text, 3:1 for large text
Accessibility
- Labels on icon buttons (
.accessibilityLabel()) - Reduce motion respected (
@Environment(\.accessibilityReduceMotion)) - Logical reading order (
.accessibilitySortPriority()) - Support Bold Text, Increase Contrast preferences
Navigation
- Tab bar (3-5 sections) stays visible during navigation
- Back swipe works (never override system gestures)
- State preserved across tabs (
@SceneStorage,@State) - Never use hamburger menus
Privacy & Permissions
- Request permissions in context (not at launch)
- Custom explanation before system dialog
- Support Sign in with Apple
- Respect ATT denial
Checklist
Layout
- [ ] Touch targets >= 44pt
- [ ] Content within safe areas
- [ ] Primary actions in thumb zone (bottom half)
- [ ] Flexible widths for all screen sizes (SE to Pro Max)
- [ ] Spacing aligns to 8pt grid
Typography
- [ ] Semantic text styles or UIFontMetrics-scaled custom fonts
- [ ] Dynamic Type supported up to accessibility sizes
- [ ] Layouts reflow at large sizes (no truncation)
- [ ] Minimum text size 11pt
Colors
- [ ] Semantic system colors or light/dark asset variants
- [ ] Dark Mode is intentional (not just inverted)
- [ ] No color-only information
- [ ] Text contrast >= 4.5:1 (normal) / 3:1 (large)
- [ ] Single accent color for interactive elements
Accessibility
- [ ] VoiceOver labels on all interactive elements
- [ ] Logical reading order
- [ ] Bold Text preference respected
- [ ] Reduce Motion disables decorative animations
- [ ] All gestures have alternative access paths
Navigation
- [ ] Tab bar for 3-5 top-level sections
- [ ] No hamburger/drawer menus
- [ ] Tab bar stays visible during navigation
- [ ] Back swipe works throughout
- [ ] State preserved across tabs
Components
- [ ] Alerts for critical decisions only
- [ ] Sheets have dismiss path (button and/or swipe)
- [ ] List rows >= 44pt tall
- [ ] Destructive buttons use
.destructiverole
Privacy
- [ ] Permissions requested in context (not at launch)
- [ ] Custom explanation before system permission dialog
- [ ] Sign in with Apple offered with other providers
- [ ] Basic features usable without account
- [ ] ATT prompt shown if tracking, denial respected
System Integration
- [ ] App handles interruptions gracefully (calls, background, Siri)
- [ ] App content indexed for Spotlight
- [ ] Share Sheet available for shareable content
References
| Topic | Reference |
|---|---|
| Touch Targets, Safe Area, CollectionView | Layout System |
| TabBar, NavigationController, Modal | Navigation Patterns |
| StackView, Button, Alert, Search, ContextMenu | UIKit Components |
| CAShapeLayer, CAGradientLayer, Core Animation | Graphics & Animation |
| Dynamic Type, Semantic Colors, VoiceOver | Accessibility |
| Permissions, Location, Share, Lifecycle, Haptics | System Integration |
| Metal Shaders & GPU | Metal Shader Reference |
| SwiftUI HIG, Components, Patterns, Anti-Patterns | SwiftUI Design Guidelines |
| Optionals, Protocols, async/await, ARC, Error Handling | Swift Coding Standards |
Swift, SwiftUI, UIKit, SF Symbols, Metal, and Apple are trademarks of Apple Inc. SnapKit is a trademark of its respective owners.
同梱ファイル
※ ZIPに含まれるファイル一覧。`SKILL.md` 本体に加え、参考資料・サンプル・スクリプトが入っている場合があります。
- 📄 SKILL.md (7,207 bytes)
- 📎 references/accessibility.md (6,867 bytes)
- 📎 references/graphics-animation.md (9,183 bytes)
- 📎 references/layout-system.md (6,886 bytes)
- 📎 references/metal-shader.md (5,973 bytes)
- 📎 references/navigation-patterns.md (5,056 bytes)
- 📎 references/swift-coding-standards.md (15,218 bytes)
- 📎 references/swiftui-design-guidelines.md (32,986 bytes)
- 📎 references/system-integration.md (9,765 bytes)
- 📎 references/uikit-components.md (8,681 bytes)