jpskill.com
🛠️ 開発・MCP コミュニティ

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.

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
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
🪟 Windows (PowerShell)
$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. 1. 下の青いボタンを押して ios-application-dev.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → ios-application-dev フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

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 .destructive role

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` 本体に加え、参考資料・サンプル・スクリプトが入っている場合があります。