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.
Best use case
ios-application-dev is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
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.
Teams using ios-application-dev should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/ios-application-dev/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How ios-application-dev Compares
| Feature / Agent | ios-application-dev | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
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.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
Related Guides
AI Agents for Coding
Browse AI agent skills for coding, debugging, testing, refactoring, code review, and developer workflows across Claude, Cursor, and Codex.
Cursor vs Codex for AI Workflows
Compare Cursor and Codex for AI coding workflows, repository assistance, debugging, refactoring, and reusable developer skills.
Best AI Skills for Claude
Explore the best AI skills for Claude and Claude Code across coding, research, workflow automation, documentation, and agent operations.
SKILL.md Source
# 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](references/layout-system.md) | | TabBar, NavigationController, Modal | [Navigation Patterns](references/navigation-patterns.md) | | StackView, Button, Alert, Search, ContextMenu | [UIKit Components](references/uikit-components.md) | | CAShapeLayer, CAGradientLayer, Core Animation | [Graphics & Animation](references/graphics-animation.md) | | Dynamic Type, Semantic Colors, VoiceOver | [Accessibility](references/accessibility.md) | | Permissions, Location, Share, Lifecycle, Haptics | [System Integration](references/system-integration.md) | | Metal Shaders & GPU | [Metal Shader Reference](references/metal-shader.md) | | SwiftUI HIG, Components, Patterns, Anti-Patterns | [SwiftUI Design Guidelines](references/swiftui-design-guidelines.md) | | Optionals, Protocols, async/await, ARC, Error Handling | [Swift Coding Standards](references/swift-coding-standards.md) | --- Swift, SwiftUI, UIKit, SF Symbols, Metal, and Apple are trademarks of Apple Inc. SnapKit is a trademark of its respective owners.
Related Skills
vision-analysis
Analyze, describe, and extract information from images using the MiniMax vision MCP tool. Use when: user shares an image file path or URL (any message containing .jpg, .jpeg, .png, .gif, .webp, .bmp, or .svg file extension) or uses any of these words/phrases near an image: "analyze", "analyse", "describe", "explain", "understand", "look at", "review", "extract text", "OCR", "what is in", "what's in", "read this image", "see this image", "tell me about", "explain this", "interpret this", in connection with an image, screenshot, diagram, chart, mockup, wireframe, or photo. Also triggers for: UI mockup review, wireframe analysis, design critique, data extraction from charts, object detection, person/animal/activity identification. Triggers: any message with an image file extension (jpg, jpeg, png, gif, webp, bmp, svg), or any request to analyze/describ/understand/review/extract text from an image, screenshot, diagram, chart, photo, mockup, or wireframe.
shader-dev
Comprehensive GLSL shader techniques for creating stunning visual effects — ray marching, SDF modeling, fluid simulation, particle systems, procedural generation, lighting, post-processing, and more.
react-native-dev
React Native and Expo development guide covering components, styling, animations, navigation, state management, forms, networking, performance optimization, testing, native capabilities, and engineering (project structure, deployment, SDK upgrades, CI/CD). Use when: building React Native or Expo apps, implementing animations or native UI, managing state, fetching data, writing tests, optimizing performance, deploying to App Store/Play Store, setting up CI/CD, upgrading Expo SDK, or configuring Tailwind/NativeWind.
pptx-generator
Generate, edit, and read PowerPoint presentations. Create from scratch with PptxGenJS (cover, TOC, content, section divider, summary slides), edit existing PPTX via XML workflows, or extract text with markitdown. Triggers: PPT, PPTX, PowerPoint, presentation, slide, deck, slides.
minimax-xlsx
Open, create, read, analyze, edit, or validate Excel/spreadsheet files (.xlsx, .xlsm, .csv, .tsv). Use when the user asks to create, build, modify, analyze, read, validate, or format any Excel spreadsheet, financial model, pivot table, or tabular data file. Covers: creating new xlsx from scratch, reading and analyzing existing files, editing existing xlsx with zero format loss, formula recalculation and validation, and applying professional financial formatting standards. Triggers on 'spreadsheet', 'Excel', '.xlsx', '.csv', 'pivot table', 'financial model', 'formula', or any request to produce tabular data in Excel format.
minimax-pdf
Use this skill when visual quality and design identity matter for a PDF. CREATE (generate from scratch): "make a PDF", "generate a report", "write a proposal", "create a resume", "beautiful PDF", "professional document", "cover page", "polished PDF", "client-ready document". FILL (complete form fields): "fill in the form", "fill out this PDF", "complete the form fields", "write values into PDF", "what fields does this PDF have". REFORMAT (apply design to an existing doc): "reformat this document", "apply our style", "convert this Markdown/text to PDF", "make this doc look good", "re-style this PDF". This skill uses a token-based design system: color, typography, and spacing are derived from the document type and flow through every page. The output is print-ready. Prefer this skill when appearance matters, not just when any PDF output is needed.
minimax-multimodal-toolkit
MiniMax multimodal model skill — use MiniMax Multi-Modal models for speech, music, video, and image. Create voice, music, video, and images with MiniMax AI: TTS (text-to-speech, voice cloning, voice design, multi-segment), music (songs, instrumentals), video (text-to-video, image-to-video, start-end frame, subject reference, templates, long-form multi-scene), image (text-to-image, image-to-image with character reference), and media processing (convert, concat, trim, extract). Use when the user mentions MiniMax, multimodal generation, or wants speech/music/video/image AI, MiniMax APIs, or FFmpeg workflows alongside MiniMax outputs.
minimax-docx
Professional DOCX document creation, editing, and formatting using OpenXML SDK (.NET). Three pipelines: (A) create new documents from scratch, (B) fill/edit content in existing documents, (C) apply template formatting with XSD validation gate-check. MUST use this skill whenever the user wants to produce, modify, or format a Word document — including when they say "write a report", "draft a proposal", "make a contract", "fill in this form", "reformat to match this template", or any task whose final output is a .docx file. Even if the user doesn't mention "docx" explicitly, if the task implies a printable/formal document, use this skill.
gif-sticker-maker
Convert photos (people, pets, objects, logos) into 4 animated GIF stickers with captions. Use when: user wants to create cartoon stickers, GIF expressions, emoji packs, animated avatars, or convert photos to Funko Pop / Pop Mart blind box style animations. Triggers: sticker, GIF, cartoon, emoji, expression pack, avatar animation.
fullstack-dev
Full-stack backend architecture and frontend-backend integration guide. TRIGGER when: building a full-stack app, creating REST API with frontend, scaffolding backend service, building todo app, building CRUD app, building real-time app, building chat app, Express + React, Next.js API, Node.js backend, Python backend, Go backend, designing service layers, implementing error handling, managing config/auth, setting up API clients, implementing auth flows, handling file uploads, adding real-time features (SSE/WebSocket), hardening for production. DO NOT TRIGGER when: pure frontend UI work, pure CSS/styling, database schema only.
frontend-dev
Full-stack frontend development combining premium UI design, cinematic animations, AI-generated media assets, persuasive copywriting, and visual art. Builds complete, visually striking web pages with real media, advanced motion, and compelling copy. Use when: building landing pages, marketing sites, product pages, dashboards, generating media assets (image/video/audio/music), writing conversion copy, creating generative art, or implementing cinematic scroll animations.
flutter-dev
Flutter cross-platform development guide covering widget patterns, Riverpod/Bloc state management, GoRouter navigation, performance optimization, and platform-specific implementations. Includes const optimization, responsive layouts, testing strategies, and DevTools profiling. Use when: building Flutter apps, implementing state management (Riverpod/Bloc), setting up GoRouter navigation, creating custom widgets, optimizing performance, writing widget tests, cross-platform development.