UX/UI Audit of Mobile App
App works, but registration conversion drops and users complain about "inconvenience" without specifics. This is where UX/UI audit exists—to find breakpoints before they cause user churn.
What We Check and How
Audit isn't "look and write what you don't like." It's structured checking across several independent axes.
Platform Guideline Compliance
iOS: Apple Human Interface Guidelines—first check touch target size (minimum 44×44 pt), use of system components (Navigation Bar, Tab Bar, sheets), behavior with safe area (notch, Dynamic Island, home indicator). Common mistake—content under UITabBar on fast scroll due to wrong contentInset or missing safeAreaLayoutGuide. Another—custom Navigation Bar conflicting with back gesture (UIScreenEdgePanGestureRecognizer) returning to wrong screen.
Android: Material Design 3 guidelines—elevation, ripple effects, WindowInsets for edge-to-edge mode. Often see apps not supporting gestural navigation (Android 10+): content hides behind navigation bar or system gestures conflict with horizontal swipe in app.
Perception Performance
Time to first meaningful content (LCP on mobile web, or time to viewDidAppear with meaningful content in native). Splash screen over 2 seconds—problem. Loading list without skeleton state and user sees blank screen—problem.
Check: are there loading states for all async operations, are there empty states (what does user see in empty section), are there error states with actionable text (not "Error 500" but "Failed to load. Check connection" + "Retry" button).
Gesture Conflicts and Scroll
Horizontal scroll inside vertical—UIScrollView inside UITableView—one of most common "inconvenience" complaints. UIScrollView.panGestureRecognizer.require(toFail:) or correct UIScrollViewDelegate.scrollViewShouldScrollToTop setup solve some problems, but not all. Check manually on real device: fast scroll, swipe start at different points, double-tap.
Accessibility
accessibilityLabel on all interactive elements without text (icons, image-only buttons). Text contrast—WCAG 2.1 AA requires 4.5:1 for normal text, 3:1 for large. Check via Xcode Accessibility Inspector or Android Accessibility Scanner. Dynamic font size (Dynamic Type / SP units)—app shouldn't break at maximum UIContentSizeCategory.accessibilityExtraExtraExtraLarge.
Navigation Patterns
Navigation depth: if key action requires 4+ screens—problem. Breadcrumbs or header with context ("Settings → Notifications") where needed. Back button—only where makes sense; bottom sheet and modal should close on backdrop tap.
Audit Tools
- Xcode Accessibility Inspector—accessibility check without VoiceOver enabling
- Android Accessibility Scanner—automatic issue report
- Figma—overlay guidelines over screenshots, measurement
- Lookback / Maze—if need user testing with session recordings
- Firebase Performance—real data on screen load times
- Crashlytics—crash correlation with specific UI scenarios
Audit Result
Structured report with impact/effort prioritization. Critical (block key scenarios), high (noticeably worsen experience), medium (minor guideline mismatches), low (cosmetic). For each issue—screenshot, description, guideline link, specific recommendation. Not "make button bigger" but "increase 'Cancel' button touch target to 44pt; current size 28pt defined via CGRect(origin:, size: CGSize(width: 28, height: 28)) at line 47 ViewController.swift".
Timeline: 2–3 days depending on screen count and platforms. App with 20+ screens on iOS and Android simultaneously—3 days.







