Tooling

Mobile — Snapshot / Visual Regression Testing

Paparazzi, Roborazzi, swift-snapshot-testing, golden_toolkit, Loki — visual diff testing for mobile.

Snapshot testing renders UI to images and compares to known-good baselines. It's the cheapest way to catch unintended visual regressions. Per-platform tools dominate; Compose Multiplatform and RN have a thinner ecosystem here. For non-visual testing see Mobile — Testing Frameworks.

iOS / SwiftUI

  • swift-snapshot-testing (Point-Free) — the de-facto Swift snapshot tool; renders SwiftUI / UIKit / images / text / JSON. MIT.
  • iOSSnapshotTestCase — Facebook's older library; less hot.
  • SnapshotPreviews (EmergeTools) — automatic snapshots from #Preview macros; free + paid tier.

Android / Compose

  • Paparazzi (Square) — render Compose to PNG on the JVM (no device); fast feedback. Apache 2.0.
  • Roborazzi — Robolectric-based snapshot testing; works with Compose; supports interaction recording. Free.
  • Shot (Karumi) — older instrumented snapshot library.
  • Showkase — catalog of all your @Preview composables; not snapshotting per se but pairs well.

React Native

  • Jest + react-test-renderer — snapshot the React tree (text-shaped, not pixel).
  • Loki — visual snapshot for React Native via Storybook.
  • Storybook for RN + Chromatic — paid; visual diff hosted.
  • react-native-owl — pixel snapshot tool.

Flutter

  • flutter_test golden tests — built-in; matchesGoldenFile.
  • golden_toolkit — better defaults, font loading, multi-device golden tests.
  • alchemist — modern golden testing helper.

Compose Multiplatform / KMP

  • Paparazzi — Android JVM only; works on the Android target.
  • For iOS snapshots in CMP, use swift-snapshot-testing on the iOS app target.
  • Cross-platform CMP visual tests are an open gap as of 2026.

Visual regression hosted services

  • Chromatic — Storybook visual testing; works with Storybook for RN. Paid.
  • Argos — open-source visual diff service; free OSS + paid hosted.
  • Percy (BrowserStack) — paid.
  • Lost Pixel — open-source visual regression CI.
  • Emerge Tools — iOS / Android perf + size + snapshot platform; paid.

What snapshots catch (and don't)

  • Catch: layout regressions, theming bugs, font/locale issues, accessibility-tree changes.
  • Miss: animation correctness, timing-dependent UI, real input/gesture behavior. Pair with Maestro.

Tips

  • Render at multiple device sizes / locales to catch RTL and small-screen bugs.
  • Render in light + dark + high-contrast to catch theming gaps.
  • Use deterministic data and frozen clocks — randomness ruins snapshots.
  • Commit baselines to the repo; review diffs in PRs.

Pick this if…

  • iOS/SwiftUI: swift-snapshot-testing.
  • Android/Compose: Paparazzi for fastest feedback; Roborazzi if you need interaction.
  • Flutter: golden_toolkit or alchemist on top of flutter_test.
  • RN with Storybook: Loki or Chromatic.
  • Need a hosted UI for diffs: Chromatic, Argos, or Lost Pixel.
  • iOS-Android per-platform parity matters: run Paparazzi + swift-snapshot-testing on the same screen specs.

On this page