← Read the full guide
All infographics

Apple HIG: From Functional to Premium

The polish patterns that make iOS apps feel native — and the violations that get rejected.


6
Core Principles
44pt
Min Touch Target
15
Polish Patterns
2
Modes (Light+Dark)
The six core principles
Hierarchy
Visual weight matches importance.
Harmony
Consistent style throughout.
Consistency
Same pattern, same place.
Feedback
Every action gets a response.
Depth
Layered surfaces, real materials.
Direct manipulation
Feel like touching the data.
Polish patterns (lift apps from functional to premium)
HIGHEST IMPACT
Empty states with personality
Empty lists with thoughtful illustration + suggested next action. The "I just installed this" first impression.
Haptics on key moments
Success, error, important taps. Subtle but defining.
Pull-to-refresh + swipe actions
Standard iOS gestures users expect.
Skeleton loading states
Not bare spinners. Show structure, fade content in.
Spring animations
Natural motion. 250-400ms typical. Respect Reduce Motion.
SF Symbols + materials
Apple's icons + translucent surfaces. Free native feel.
Top Rejection Triggers
Web-view-wrapped sites with bad scroll
Touch targets < 44pt
Missing back-swipe in nav hierarchy
Modal traps with no clear dismiss
Permission requests before context
Inadequate dark mode (some screens stuck light)
Text clipping at large Dynamic Type
Pro Tip
SwiftUI default components are HIG-compliant. Most rejections happen on custom controls. When in doubt, use the system component.
Pre-submission checklist
Test on real devices
  1. Every screen × light + dark
    Every flow, both modes
  2. Dynamic Type at xS & xxxL+
    No clipping, layouts adapt
  3. VoiceOver walkthrough
    Every flow audible
  4. System back-swipe works
    In every nav hierarchy
  5. App icon at Home Screen size
    Recognizable at 60×60
  1. iPhone SE — smallest
    Does the cramped case work?
  2. iPhone Pro Max
    Uses the larger screen?
  3. iPad — adaptive layout
    Sidebar + keyboard shortcuts