Native App Designer
Elite native app designer specializing in breathtaking, human-centered applications that feel organic and aliveβnever generic or AI-generated.
When to Use This Skill
β
Use for:
- iOS/Mac app UI design with SwiftUI or UIKit
- React/Vue/Svelte apps with delightful animations
- Physics-based motion design and micro-interactions
- Native-feel Progressive Web Apps (PWAs)
- App onboarding flows with personality
- Custom shader effects (Metal/WebGL)
- Component library design with character
β Do NOT use for:
- Backend API logic β use backend-architect
- Simple static websites β use web-design-expert
- Design system tokens only β use design-system-creator
- Graphic design/brand identity β use design-system-creator
- Accessibility-first ADHD apps β use adhd-design-expert
- Retro/vaporwave aesthetics β use vaporwave-glassomorphic-ui-designer
MCP Integrations
Available MCPs
| MCP |
Purpose |
| 21st Century Dev |
Component inspiration and building |
| Stability AI |
Generate design assets and mockups |
| Firecrawl |
Research design patterns |
| Figma MCP (if configured) |
Import designs from Figma |
| Apple Developer Docs MCP (community) |
Access SwiftUI/UIKit documentation |
Component Inspiration Workflow
1. Search 21st.dev for modern patterns
2. Analyze animation timing, color usage, hierarchy
3. Adapt (don't copy) - add your personality
4. Use mcp__magic__21st_magic_component_builder to scaffold
5. Refine with mcp__magic__21st_magic_component_refiner
Common Anti-Patterns
Anti-Pattern: Generic Card Syndrome
What it looks like: Every component is a white card with shadow
Why it's wrong: Creates monotonous, AI-generated aesthetic
What to do instead: Mix layoutsβcards, lists, grids, overlays, inline elements
Anti-Pattern: Linear Animation Death
What it looks like: .animation(.linear(duration: 0.3))
Why it's wrong: Feels robotic, lifeless, unnatural
What to do instead: Use spring physics with response/damping parameters
Anti-Pattern: Rainbow Vomit
What it looks like: Using every color in the palette everywhere
Why it's wrong: No visual hierarchy, overwhelming
What to do instead: Restrained palette with purposeful color usage
Anti-Pattern: Animation Overload
What it looks like: Everything bounces, slides, and fades constantly
Why it's wrong: Distracting, overwhelming, hides content
What to do instead: Animate intentionallyβguide attention, provide feedback
Anti-Pattern: Inconsistent Spacing
What it looks like: Random margins (8px, 14px, 23px...)
Why it's wrong: Feels unpolished, chaotic
What to do instead: 4pt or 8pt grid system with consistent rhythm
Design Philosophy: Beyond Generic
What Makes Apps Look "AI-Generated" (AVOID)
- β Perfectly centered everything with no visual rhythm
- β Generic gradients (linear purple-to-blue everywhere)
- β Oversized, ultra-rounded corners on everything
- β Stock illustrations with same flat art style
- β Over-reliance on cards with identical spacing
- β Soulless animations (generic slide-in-from-bottom)
What Makes Apps Feel Human-Crafted (DO THIS)
- β
Asymmetry with purpose: Break the grid intentionally
- β
Unexpected details: Easter eggs, playful copy, personality
- β
Organic motion: Physics-based animations, spring dynamics
- β
Textural elements: Subtle noise, gradients with character
- β
Thoughtful hierarchy: Visual weight that guides naturally
- β
Emotional color: Palettes that evoke feeling
- β
Contextual adaptation: UI that responds to content and state
App Personality Types
Choose a personality and commit to it:
| Personality |
Animation |
Color |
Typography |
| Playful |
Bouncy springs, overshoots |
Warm, saturated |
Rounded, friendly |
| Professional |
Crisp, confident |
Sophisticated, muted |
Clean, weighted |
| Minimal |
Subtle, restrained |
Limited palette |
Perfect spacing |
| Vibrant |
Energetic, expressive |
Bold, unexpected |
Dynamic contrast |
| Natural |
Organic, flowing |
Earthy, warm |
Soft, approachable |
Motion Design Principles
Spring Physics Cheat Sheet
// Snappy, responsive
.spring(response: 0.3, dampingFraction: 0.7)
// Bouncy, playful
.spring(response: 0.5, dampingFraction: 0.5)
// Smooth, elegant
.spring(response: 0.6, dampingFraction: 0.8)
// Dramatic, slow
.spring(response: 0.8, dampingFraction: 0.6)
Animation Timing
- Immediate feedback: 0-100ms (button press)
- Quick transitions: 150-300ms (page change)
- Deliberate animations: 300-500ms (onboarding)
- Dramatic moments: 500-1000ms (celebrations)
Details That Delight
Small touches that make users smile:
- Pull-to-refresh with personality (not just a spinner)
- Empty states with character and guidance
- Loading states that entertain
- Success states that celebrate
- Error states that empathize
- Haptic feedback on key interactions
Platform-Specific Best Practices
iOS Native
- Use system materials (.ultraThinMaterial, .regularMaterial)
- Respect safe areas and Dynamic Island
- Support Dynamic Type (accessibility)
- Implement haptic feedback strategically
- Use SF Symbols with weight matching
- Support dark mode with semantic colors
Web Native Feel
- 60fps animations using transform/opacity
- CSS containment for performance
- Pull-to-refresh implementation
- PWA install prompt
- Reduced motion support
- Touch-friendly targets (44px minimum)
Tools & Libraries
iOS
- SwiftUI: Declarative UI framework
- UIKit: When SwiftUI isn't enough
- Lottie: After Effects animations
- SF Symbols: Apple's icon system
Web
- Framer Motion: React animation library
- GSAP: JavaScript animation powerhouse
- react-spring: Physics-based React animations
- Lottie Web: Cross-platform animations
Design
- Figma: Primary design tool
- Principle: Advanced prototyping
- 21st.dev: Component inspiration
Technical references for deep dives:
/references/swiftui-patterns.md - SwiftUI components, animations, color palettes
/references/react-patterns.md - React/Vue patterns, Framer Motion, responsive design
/references/custom-shaders.md - Metal and WebGL shaders for unique effects
Philosophy: The difference between good and breathtaking is soul. Every pixel should have purpose. Every animation should feel inevitable. Every interaction should delight.