mcpField
I
ios-application-dev

ios-application-dev

github.com/minimax-ai開発13.7k2.1k 回インストール28 週間前に更新
リポジトリ

ios-application-dev について

ios-application-devは、UIKit、SnapKit、SwiftUIを使ったiOSアプリ開発の実践ガイドです。Appleプラットフォームの慣例に沿ったコンポーネントの指針と、レイアウト、アクセシビリティ、ナビゲーション、プライバシー、システム連携のチェック項目を提供します。

主な機能

  1. 01UIKitとSwiftUIのコンポーネント資料
  2. 02レイアウトとタイポグラフィの実践指針
  3. 03アクセシビリティと色の指針
  4. 04ナビゲーションと状態保持のパターン
  5. 05プライバシーと権限のチェック項目
  6. 06システム連携の推奨事項

活用シーン

  1. 01アプリ画面に使うUIKitまたはSwiftUIのコンポーネント選び
  2. 02アクセシビリティと画面サイズ対応のレイアウト確認
  3. 03タブ間のナビゲーションと状態管理の計画
  4. 04権限要求とプライバシー動作の確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/minimax-ai/skills --skill ios-application-dev

インストール後、Claude Code で/ios-application-devを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
accessibility.md
graphics-animation.md
layout-system.md
metal-shader.md
navigation-patterns.md
swift-coding-standards.md
swiftui-design-guidelines.md
system-integration.md
uikit-components.md

詳細

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)
  • カスタムカラーにはアセットカタログのバリエーションを使用します(任意/ダークの外観)
  • 色だけで情報を伝えないでください(アイコンまたはテキストを併用します)
  • コントラスト比は通常のテキストで 4.5:1 以上、大きなテキストで 3:1 以上にします
アクセシビリティ
  • アイコンボタンにラベルを設定します(.accessibilityLabel())
  • モーションを抑える設定に対応します(@Environment(\.accessibilityReduceMotion))
  • 読み上げ順序を論理的にします(.accessibilitySortPriority())
  • 「さらに大きな文字」と「コントラストを上げる」の設定に対応します
ナビゲーション
  • タブバー(3〜5 セクション)は画面遷移中も表示したままにします
  • 戻るスワイプを動作させます(システムジェスチャを上書きしないでください)
  • タブ間で状態を保持します(@SceneStorage、@State)
  • ハンバーガーメニューは使用しないでください
プライバシーと権限
  • 権限は適切なコンテキストでリクエストします(起動時にはリクエストしません)
  • システムダイアログの前に独自の説明を表示します
  • Sign in with Apple に対応します
  • ATT の拒否を尊重します

チェックリスト

レイアウト
  • タッチターゲットは 44pt 以上
  • コンテンツはセーフエリア内
  • 主要なアクションは親指が届く範囲(画面の下半分)
  • すべての画面サイズ(SE から Pro Max まで)に対応する柔軟な幅
  • 間隔が 8pt グリッドに沿っている
タイポグラフィ
  • セマンティックなテキストスタイル、または UIFontMetrics で拡大縮小されるカスタムフォント
  • ダイナミックタイプがアクセシビリティサイズまでサポートされている
  • 大きなサイズでもレイアウトが再配置される(テキストが切り詰められない)
  • テキストサイズの最小値が 11pt
色
  • セマンティックカラーシステムまたはライト/ダーク用のアセットバリエーション
  • ダークモードが意図的に設計されている(単に反転しただけではない)
  • 色だけに依存した情報がない
  • テキストのコントラスト比が 4.5:1 以上(通常サイズ)/3:1 以上(大きいサイズ)
  • インタラクティブ要素には単一のアクセントカラーを使用
アクセシビリティ
  • すべてのインタラクティブ要素に VoiceOver ラベルを設定
  • 読み上げ順序が論理的
  • 太字テキストの設定を尊重
  • 視差効果を減らす設定で装飾的なアニメーションを無効化
  • すべてのジェスチャーに代替のアクセス方法を用意
ナビゲーション
  • 最上位のセクションが 3~5 個の場合はタブバーを使用
  • ハンバーガー/ドロワーメニューを使用しない
  • ナビゲーション中もタブバーを表示したままにする
  • どの画面でもスワイプで戻れる
  • タブ間で状態を保持
コンポーネント
  • アラートは重要な判断が必要な場合にのみ使用
  • シートに閉じる方法(ボタンおよび/またはスワイプ)を用意
  • リストの行の高さを 44pt 以上にする
  • 破壊的なボタンには .destructive ロールを使用
プライバシー
  • 権限は状況に応じてリクエストする(起動時にはリクエストしない)
  • システムの権限ダイアログの前に、独自の説明を表示
  • ほかのプロバイダーとともに「Apple でサインイン」を提供
  • アカウントなしで基本機能を利用可能
  • トラッキングを行う場合は ATT の確認を表示し、拒否を尊重
システムとの統合
  • 通話、バックグラウンド移行、Siri などの割り込みをアプリが適切に処理
  • Spotlight でアプリのコンテンツをインデックス化
  • 共有可能なコンテンツで共有シートを利用可能にする

参考資料

トピック参考資料
タッチターゲット、安全領域、CollectionViewレイアウトシステム
TabBar、NavigationController、モーダルナビゲーションパターン
StackView、ボタン、アラート、検索、ContextMenuUIKit コンポーネント
CAShapeLayer、CAGradientLayer、Core Animationグラフィックスとアニメーション
Dynamic Type、セマンティックカラー、VoiceOverアクセシビリティ
権限、位置情報、共有、ライフサイクル、触覚フィードバックシステムとの統合
Metal シェーダーと GPUMetal シェーダーリファレンス
SwiftUI HIG、コンポーネント、パターン、アンチパターンSwiftUI デザインガイドライン
Optional、Protocol、async/await、ARC、エラー処理Swift コーディング規約

Swift、SwiftUI、UIKit、SF Symbols、Metal、および Apple は Apple Inc. の商標です。SnapKit は各所有者の商標です。

コメント