CLAUDE CODE MARKETPLACES
Skillsminimax-ai/skillsios-application-dev

ios-application-dev

|

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

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

PurposeComponent
Main sectionsUITabBarController
Drill-downUINavigationController
Focused taskSheet presentation
Critical choiceUIAlertController
Secondary actionsUIContextMenuInteraction
List contentUICollectionView + DiffableDataSource
Sectioned listDiffableDataSource + headerMode
Grid layoutUICollectionViewCompositionalLayout
SearchUISearchController
ShareUIActivityViewController
Location (once)CLLocationButton
FeedbackUIImpactFeedbackGenerator
Linear layoutUIStackView
Custom shapesCAShapeLayer + UIBezierPath
GradientsCAGradientLayer
Modern buttonsUIButton.Configuration
Dynamic textUIFontMetrics + preferredFont
Dark modeSemantic colors (.systemBackground, .label)
PermissionsContextual request + AVCaptureDevice
LifecycleUIApplication notifications

SwiftUI

PurposeComponent
Main sectionsTabView + tabItem
Drill-downNavigationStack + NavigationPath
Focused task.sheet + presentationDetents
Critical choice.alert
Secondary actions.contextMenu
List contentList + .insetGrouped
Search.searchable
ShareShareLink
Location (once)LocationButton
FeedbackUIImpactFeedbackGenerator
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

TopicReference
Touch Targets, Safe Area, CollectionViewLayout System
TabBar, NavigationController, ModalNavigation Patterns
StackView, Button, Alert, Search, ContextMenuUIKit Components
CAShapeLayer, CAGradientLayer, Core AnimationGraphics & Animation
Dynamic Type, Semantic Colors, VoiceOverAccessibility
Permissions, Location, Share, Lifecycle, HapticsSystem Integration
Metal Shaders & GPUMetal Shader Reference
SwiftUI HIG, Components, Patterns, Anti-PatternsSwiftUI Design Guidelines
Optionals, Protocols, async/await, ARC, Error HandlingSwift Coding Standards

Swift, SwiftUI, UIKit, SF Symbols, Metal, and Apple are trademarks of Apple Inc. SnapKit is a trademark of its respective owners.