<!-- llms-explorer concept facts · https://llms-explorer.com/tree/mobile-ios-design/ · pack 2026-09-08 · ~2890 tokens -->

# Mobile iOS Design

> Master iOS Human Interface Guidelines (HIG) and SwiftUI patterns to build polished, native iOS applications that feel at home on Apple platforms.

Parent: [Web & Frontend Development](https://llms-explorer.com/tree/web-frontend-development/) · 12 facets · 49 facts · page: https://llms-explorer.com/tree/mobile-ios-design/

## iOS Mobile Design

- Master iOS Human Interface Guidelines (HIG) and SwiftUI patterns to build polished, native iOS applications that feel at home on Apple platforms. — [source](https://llms-explorer.com/sources/mdb-context-hub/mobile-ios-design/#ios-mobile-design)

## When to Use This Skill

- Designing iOS app interfaces following Apple HIG — [source](https://llms-explorer.com/sources/mdb-context-hub/mobile-ios-design/#when-to-use-this-skill)
- Building SwiftUI views and layouts — [source](https://llms-explorer.com/sources/mdb-context-hub/mobile-ios-design/#when-to-use-this-skill)
- Implementing iOS navigation patterns (NavigationStack, TabView, sheets) — [source](https://llms-explorer.com/sources/mdb-context-hub/mobile-ios-design/#when-to-use-this-skill)
- Creating adaptive layouts for iPhone and iPad — [source](https://llms-explorer.com/sources/mdb-context-hub/mobile-ios-design/#when-to-use-this-skill)
- Using SF Symbols and system typography — [source](https://llms-explorer.com/sources/mdb-context-hub/mobile-ios-design/#when-to-use-this-skill)
- Building accessible iOS interfaces — [source](https://llms-explorer.com/sources/mdb-context-hub/mobile-ios-design/#when-to-use-this-skill)
- Implementing iOS-specific gestures and interactions — [source](https://llms-explorer.com/sources/mdb-context-hub/mobile-ios-design/#when-to-use-this-skill)
- Designing for Dynamic Type and Dark Mode — [source](https://llms-explorer.com/sources/mdb-context-hub/mobile-ios-design/#when-to-use-this-skill)

## 1. Human Interface Guidelines Principles

- Clarity: Content is legible, icons are precise, adornments are subtle Deference: UI helps users understand content without competing with it Depth: Visual layers and motion convey hierarchy and enable navigation — [source](https://llms-explorer.com/sources/mdb-context-hub/mobile-ios-design/#1-human-interface-guidelines-principles)
- Platform Considerations: — [source](https://llms-explorer.com/sources/mdb-context-hub/mobile-ios-design/#1-human-interface-guidelines-principles)
  - iOS: Touch-first, compact displays, portrait orientation — [source](https://llms-explorer.com/sources/mdb-context-hub/mobile-ios-design/#1-human-interface-guidelines-principles)
  - iPadOS: Larger canvas, multitasking, pointer support — [source](https://llms-explorer.com/sources/mdb-context-hub/mobile-ios-design/#1-human-interface-guidelines-principles)
  - visionOS: Spatial computing, eye/hand input — [source](https://llms-explorer.com/sources/mdb-context-hub/mobile-ios-design/#1-human-interface-guidelines-principles)

## 2. SwiftUI Layout System

- Stack-Based Layouts: — [source](https://llms-explorer.com/sources/mdb-context-hub/mobile-ios-design/#2-swiftui-layout-system)

## 3. Navigation Patterns

- NavigationStack (iOS 16+): — [source](https://llms-explorer.com/sources/mdb-context-hub/mobile-ios-design/#3-navigation-patterns)
- TabView (iOS 18+): — [source](https://llms-explorer.com/sources/mdb-context-hub/mobile-ios-design/#3-navigation-patterns)

## 5. Visual Design

- Colors and Materials: — [source](https://llms-explorer.com/sources/mdb-context-hub/mobile-ios-design/#5-visual-design)
- Shadows and Depth: — [source](https://llms-explorer.com/sources/mdb-context-hub/mobile-ios-design/#5-visual-design)

## Best Practices

- Use Semantic Colors: Always use .primary, .secondary, .background for automatic light/dark mode support — [source](https://llms-explorer.com/sources/mdb-context-hub/mobile-ios-design/#best-practices)
- Embrace SF Symbols: Use system symbols for consistency and automatic accessibility — [source](https://llms-explorer.com/sources/mdb-context-hub/mobile-ios-design/#best-practices)
- Support Dynamic Type: Use semantic fonts (.body, .headline) instead of fixed sizes — [source](https://llms-explorer.com/sources/mdb-context-hub/mobile-ios-design/#best-practices)
- Add Accessibility: Include .accessibilityLabel() and .accessibilityHint() modifiers — [source](https://llms-explorer.com/sources/mdb-context-hub/mobile-ios-design/#best-practices)
- Use Safe Areas: Respect safeAreaInset and avoid hardcoded padding at screen edges — [source](https://llms-explorer.com/sources/mdb-context-hub/mobile-ios-design/#best-practices)
- Implement State Restoration: Use @SceneStorage for preserving user state — [source](https://llms-explorer.com/sources/mdb-context-hub/mobile-ios-design/#best-practices)
- Support iPad Multitasking: Design for split view and slide over — [source](https://llms-explorer.com/sources/mdb-context-hub/mobile-ios-design/#best-practices)
- Test on Device: Simulator doesn't capture full haptic and performance experience — [source](https://llms-explorer.com/sources/mdb-context-hub/mobile-ios-design/#best-practices)

## Common Issues

- Layout Breaking: Use .fixedSize() sparingly; prefer flexible layouts — [source](https://llms-explorer.com/sources/mdb-context-hub/mobile-ios-design/#common-issues)
- Performance Issues: Use LazyVStack/LazyHStack for long scrolling lists — [source](https://llms-explorer.com/sources/mdb-context-hub/mobile-ios-design/#common-issues)
- Navigation Bugs: Ensure NavigationLink values are Hashable — [source](https://llms-explorer.com/sources/mdb-context-hub/mobile-ios-design/#common-issues)
- Dark Mode Problems: Avoid hardcoded colors; use semantic or asset catalog colors — [source](https://llms-explorer.com/sources/mdb-context-hub/mobile-ios-design/#common-issues)
- Accessibility Failures: Test with VoiceOver enabled — [source](https://llms-explorer.com/sources/mdb-context-hub/mobile-ios-design/#common-issues)
- Memory Leaks: Watch for strong reference cycles in closures — [source](https://llms-explorer.com/sources/mdb-context-hub/mobile-ios-design/#common-issues)

## Where this helps

- Building a new iPhone/iPad app from scratch where the goal is to feel native rather than like a cross-platform port — HIG-driven navigation, SF Symbols, and semantic colors do this out of the box. — [source](https://llms-explorer.com/tree/mobile-ios-design/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*
- Retrofitting Dark Mode and Dynamic Type support into an existing SwiftUI app so it meets App Store accessibility expectations without hardcoded values scattered through the codebase. — [source](https://llms-explorer.com/tree/mobile-ios-design/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*
- Designing an iPad app that must support multitasking (Split View, Slide Over) as well as the phone-sized layout, where a single adaptive layout has to serve both. — [source](https://llms-explorer.com/tree/mobile-ios-design/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*
- Auditing an app before submission for VoiceOver and accessibility compliance ahead of App Store review. — [source](https://llms-explorer.com/tree/mobile-ios-design/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*

## Project ideas

- Build a small utility app that exercises NavigationStack, TabView, and sheet presentation together, to internalize how iOS 16+/18+ navigation patterns compose. — [source](https://llms-explorer.com/tree/mobile-ios-design/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*
- Take an existing fixed-color, fixed-font screen and refactor it to use only semantic colors (.primary/.secondary/.background) and semantic fonts (.body/.headline), then verify it in both Light and Dark Mode and at the largest Dynamic Type size. — [source](https://llms-explorer.com/tree/mobile-ios-design/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*
- Build a reusable SwiftUI component library that wraps SF Symbols with accessibility labels/hints baked in, so every icon button in an app is VoiceOver-usable by default. — [source](https://llms-explorer.com/tree/mobile-ios-design/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*
- Prototype an iPad-only layout using LazyVStack/LazyHStack for a long scrolling list, and stress-test it in Split View at the narrowest supported width. — [source](https://llms-explorer.com/tree/mobile-ios-design/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*

## Antipatterns

- Hardcoding colors and fonts instead of using semantic colors and Dynamic Type-aware fonts, which breaks automatically in Dark Mode and at larger accessibility text sizes. — [source](https://llms-explorer.com/tree/mobile-ios-design/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*
- Using VStack/HStack for long scrolling lists instead of LazyVStack/LazyHStack, which forces SwiftUI to render every row up front and causes visible scroll performance problems. — [source](https://llms-explorer.com/tree/mobile-ios-design/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*
- Skipping .accessibilityLabel()/.accessibilityHint() on icon-only SF Symbol buttons, leaving VoiceOver users with an unlabeled control. — [source](https://llms-explorer.com/tree/mobile-ios-design/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*
- Designing only for iPhone portrait and bolting on iPad support later, instead of designing the adaptive layout from the start. — [source](https://llms-explorer.com/tree/mobile-ios-design/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*

## Known issues

- The Simulator does not reproduce haptic feedback or real device performance, so layout and performance issues can look fine in Simulator and still surface on a physical device. — [source](https://llms-explorer.com/tree/mobile-ios-design/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*
- NavigationLink values must conform to Hashable, and forgetting this is a common source of hard-to-diagnose navigation bugs. — [source](https://llms-explorer.com/tree/mobile-ios-design/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*
- Strong reference cycles inside SwiftUI closures (especially in view models and callbacks) are a common source of memory leaks that don't show up until an app has been running for a while. — [source](https://llms-explorer.com/tree/mobile-ios-design/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*
- .fixedSize() and other fixed-layout escape hatches fight the adaptive layout system, and overusing them causes hard-to-debug layout breaks across device sizes. — [source](https://llms-explorer.com/tree/mobile-ios-design/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*

## Context files

- [Mobile iOS Design](https://llms-explorer.com/downloads/sources/mdb-context-hub/mobile-ios-design.md)
