Mobile isn’t just a smaller screen—it’s a different context. Users are on the go, one-handed, distracted. Touch is imprecise. Screen real estate is precious. Designing for mobile requires understanding these constraints.
Here are the patterns that work.
Touch targets must be large. Apple recommends minimum 44×44 points. Fingers aren’t pixels.
Attention is fragmented. Users check phones in 1-2 minute bursts. Get to the point.
Context varies. Bright sunlight, walking, noisy environments. Design for the worst case.
Vertical space is limited. Think in terms of what’s visible without scrolling.
Typing is harder. Minimize text input. Use selection over free-form when possible.
The most common mobile pattern. Tabs at the bottom provide quick access to main sections.
•
Frequent switching between sections
•
Flat information architecture
•
Use icons + labels (icons alone are ambiguous)
•
Highlight current tab clearly
Hidden menu accessed via hamburger icon. Common on Android, less on iOS.
•
Many top-level sections (6+)
•
Settings and account access
•
Out of sight, out of mind—users forget what’s there
•
Requires extra tap to access
•
Don’t hide primary navigation in drawers
Push and pop screens in a hierarchy. The standard for flows.
•
Linear flows (checkout, onboarding)
•
Drilling into detail views
•
Any parent-child relationship
•
Always provide back button
•
Maintain context (where did I come from?)
•
Use consistent transitions
Full-screen overlays for focused tasks.
•
Focused tasks that shouldn’t be interrupted
•
Provide clear close/cancel option
•
Consider swipe-to-dismiss
Show appropriate keyboard for the input type:
•
Email: <input type="email"> shows @ key
•
Phone: <input type="tel"> shows number pad
•
Numbers: <input type="number"> shows number pad
•
Search: <input type="search"> shows search key
For constrained choices, use native pickers:
•
Dropdown/wheel picker for lists
Don’t make users type what they can select.
Reduce fields: Every field is friction. Only ask what you need.
Stack vertically: One field per line. Don’t put labels beside inputs.
Show progress: For long forms, show steps and progress.
Autofill support: Enable autofill for addresses, payment, etc.
Inline validation: Show errors immediately, not after submit.
Sticky submit button: Keep primary action visible without scrolling.
Group related content in card containers. Cards:
•
Can be tapped as a single unit
•
Adapt to different screen sizes
The fundamental mobile pattern. Lists:
•
Work for any amount of content
•
Clear visual hierarchy within items
•
Secondary actions via swipe or long-press
•
Pull to refresh for live data
•
Infinite scroll or pagination for long lists
What users see when there’s no content:
•
Explain what will appear here
•
Provide action to create content
•
Keep it friendly, not sad
•
Skeleton screens (outlines of content)
•
Progress indicators for long operations
Never show blank screens while loading.
Primary interaction. Use for:
Secondary actions. Use for:
•
Revealing actions (delete, archive)
•
Navigating between views (with caution)
Contextual menus. Use for:
Refresh content. Only use when:
•
Content updates frequently
•
User expects manual refresh
•
Automatic refresh isn’t appropriate
For content that benefits from zooming:
Don’t disable zoom on text—it’s an accessibility issue.
While converging, platforms still differ:
•
Navigation bar at top with back arrow
•
Rounded corners and depth
•
Bottom navigation (similar to tabs)
•
Top app bar with navigation drawer
•
FAB (Floating Action Button)
•
Material Design surface elevation
For most startups: Use cross-platform frameworks (React Native, Flutter) with platform-specific tweaks for feel. Don’t force iOS patterns on Android or vice versa.
Users hold phones differently. Design for one-handed use:
Easy reach: Bottom and middle of screen. Put primary actions here.
Hard reach: Top corners. Put secondary actions here.
The “thumb zone” concept: Most important actions should be reachable without shifting grip.
On mobile, performance is UX:
•
First load under 3 seconds
•
Interaction responses under 100ms
•
Offline support where possible
Slow apps feel broken, regardless of features.
Test on real devices, not just simulators:
•
Different performance tiers
Test in realistic conditions:
•
One-handed while standing
Desktop patterns forced onto mobile: Hover states, right-click menus, tiny text.
Too many tabs: Five maximum. More requires different navigation.
Text-heavy interfaces: Walls of text don’t work on mobile.
No touch feedback: Users need to know their tap registered.
Breaking platform conventions: iOS users expect swipe-back. Android users expect the back button.
Ignoring the notch: Design around safe areas.
•
Design for thumb reach—primary actions at bottom
•
Touch targets minimum 44×44 points
•
Use tab bar or bottom navigation for main sections
•
Minimize typing with pickers, selection, and smart keyboards
•
Performance is UX—slow is broken
•
Test on real devices in realistic contexts
•
Respect platform conventions while maintaining brand