Mobile UX Skill
Atomic Skill: Design native-feeling mobile experiences for iOS and Android platforms
Purpose
This skill provides platform-specific guidance for creating optimal mobile user experiences.
Skill Invocation
Skill("custom-plugin-ux-design:mobile-ux")
Parameter Schema
Input Parameters
interface MobileUXParams {
// Required
task: "ios" | "android" | "cross-platform" | "responsive" | "gesture";
scope: string;
// Optional
platform_priority?: "ios" | "android" | "equal";
app_type?: "native" | "hybrid" | "pwa";
device_targets?: ("phone" | "tablet" | "foldable")[];
os_versions?: {
ios?: string;
android?: string;
};
}
Validation Rules
task:
type: enum
required: true
values: [ios, android, cross-platform, responsive, gesture]
scope:
type: string
required: true
min_length: 5
platform_priority:
type: enum
default: "equal"
Execution Flow
MOBILE UX EXECUTION
────────────────────────────────────────────
Step 1: ANALYZE REQUIREMENTS
├── Identify target platforms
├── Define device matrix
└── Set priority platform
Step 2: RESEARCH GUIDELINES
├── Review platform HIG
├── Study native patterns
└── Identify constraints
Step 3: DESIGN PATTERNS
├── Navigation structure
├── Touch interactions
├── Platform-specific components
└── Gesture mapping
Step 4: ADAPT FOR PLATFORMS
├── iOS adaptations
├── Android adaptations
├── Cross-platform unification
└── Responsive breakpoints
Step 5: VALIDATE
├── Test on device matrix
├── Verify platform compliance
└── Document exceptions
────────────────────────────────────────────
Retry Logic
retry_config:
max_attempts: 3
backoff_type: exponential
initial_delay_ms: 1000
max_delay_ms: 10000
retryable_errors:
- DEVICE_SYNC_FAILED
- PREVIEW_TIMEOUT
Logging Hooks
interface MobileUXLog {
timestamp: string;
event: "pattern_selected" | "adaptation_created" | "device_tested";
platform: string;
device: string;
compliance_score: number;
}
Learning Modules
Module 1: iOS Human Interface Guidelines
iOS DESIGN PRINCIPLES
├── Clarity (legible, clear icons)
├── Deference (content first)
├── Depth (layers, motion)
iOS NAVIGATION
├── Tab bar (5 max)
├── Navigation bar
├── Tool bar
├── Side bar (iPad)
└── Search
iOS COMPONENTS
├── SF Symbols
├── System controls
├── Sheets
├── Popovers
└── Action sheets
Module 2: Material Design 3
MATERIAL PRINCIPLES
├── Material as metaphor
├── Bold, graphic, intentional
├── Motion provides meaning
MATERIAL NAVIGATION
├── Bottom navigation
├── Navigation drawer
├── Navigation rail
├── Tabs
└── Search
MATERIAL COMPONENTS
├── FAB (Floating Action Button)
├── Cards
├── Chips
├── Dialogs
└── Bottom sheets
Module 3: Touch & Gestures
TOUCH TARGETS
├── iOS: 44x44 pt minimum
├── Android: 48x48 dp minimum
├── Spacing: 8dp between targets
STANDARD GESTURES
├── Tap (select, activate)
├── Long press (context menu)
├── Swipe (navigate, actions)
├── Pinch (zoom)
├── Rotate (rotate content)
├── Pan (scroll, move)
└── Edge swipe (back navigation)
GESTURE CONFLICTS
├── System gesture areas
├── Platform-specific gestures
└── Custom gesture rules
Module 4: Responsive Mobile Design
BREAKPOINTS
├── Small phone: 320-375pt
├── Regular phone: 375-414pt
├── Large phone: 414-428pt
├── Small tablet: 768-834pt
├── Large tablet: 834-1024pt
└── Foldable: Variable
ADAPTIVE LAYOUTS
├── Compact (phone portrait)
├── Regular (phone landscape, tablet)
├── Expanded (tablet landscape)
SAFE AREAS
├── Status bar
├── Home indicator
├── Notch/Dynamic Island
├── Gesture areas
└── Camera cutouts
Module 5: Platform Optimization
PERFORMANCE
├── 60fps animations
├── Lazy loading
├── Image optimization
├── Memory management
└── Network efficiency
NATIVE FEEL
├── Platform animations
├── Haptic feedback
├── System sounds
├── Platform typography
└── Native controls
Platform Comparison
| Aspect |
iOS (HIG) |
Android (Material) |
| Touch target |
44x44 pt |
48x48 dp |
| Navigation |
Tab bar (bottom) |
Bottom nav / Drawer |
| Back navigation |
Swipe edge, button |
System back |
| Typography |
SF Pro |
Roboto |
| Icons |
SF Symbols |
Material Icons |
| Elevation |
Subtle |
Card elevation |
| Haptics |
Taptic Engine |
Vibration patterns |
Error Handling
| Error Code |
Description |
Recovery |
MUX-001 |
Touch target too small |
Increase size |
MUX-002 |
Platform violation |
Use native pattern |
MUX-003 |
Gesture conflict |
Redesign gesture |
MUX-004 |
Safe area ignored |
Add insets |
MUX-005 |
Layout overflow |
Use flexible layout |
Troubleshooting
Problem: App doesn't feel native
Diagnosis:
├── Check: Navigation patterns
├── Check: Component usage
├── Check: Animation timing
└── Solution: Align with platform
Steps:
1. Audit against HIG/Material
2. Replace custom with native
3. Match platform animations
4. Test with platform users
Problem: Touch interactions unreliable
Diagnosis:
├── Check: Touch target sizes
├── Check: Gesture areas
├── Check: Feedback timing
└── Solution: Optimize touch
Steps:
1. Measure all targets
2. Increase to minimum
3. Add haptic feedback
4. Test with real devices
Unit Test Templates
describe("MobileUXSkill", () => {
describe("platform compliance", () => {
it("should meet iOS touch target requirements", async () => {
const result = await invoke({
task: "ios",
scope: "button component"
});
expect(result.touch_target.width).toBeGreaterThanOrEqual(44);
expect(result.touch_target.height).toBeGreaterThanOrEqual(44);
});
it("should meet Android touch target requirements", async () => {
const result = await invoke({
task: "android",
scope: "button component"
});
expect(result.touch_target.width).toBeGreaterThanOrEqual(48);
expect(result.touch_target.height).toBeGreaterThanOrEqual(48);
});
});
describe("responsive adaptation", () => {
it("should provide breakpoint specifications", async () => {
const result = await invoke({
task: "responsive",
scope: "navigation layout"
});
expect(result.breakpoints.compact).toBeDefined();
expect(result.breakpoints.regular).toBeDefined();
});
});
});
Quality Metrics
| Metric |
Target |
Measurement |
| Platform compliance |
> 95% |
HIG/Material audit |
| Touch target compliance |
100% |
Size verification |
| Device coverage |
> 90% |
Matrix testing |
| Performance score |
> 90 |
Lighthouse/tools |
Version History
| Version |
Date |
Changes |
| 1.0.0 |
2025-12-30 |
Production-grade upgrade |