[ Proof ]

Proven against native, package by package.

We test and build compatibility stubs for the 2,000 most popular React Native packages with native dependencies. Visual cases are pixel-diffed against a native device.Explore features and scenarios
92%
React Native · 99%
Essentials · 98%
Top 100 · 94%
Top 500 · 92%
Top 1k · 92%
Top 500 native libraries by weekly downloads
100%
70%
40%
10%
Verifiedpixel-diffed against a real native device
Worksloads and runs
Partialsome APIs missing

Real apps

Open-source apps built from their own source at a pinned commit, run unchanged in Peach, and compared screen by screen with the same build running natively on iOS. Every screen we show is within 1% of native.
27apps
132screens
99.81%average match
Artsy99.82%
6 screens
AvoCook99.05%
5 screens
Bluesky99.69%
11 screens
BlueWallet99.89%
6 screens
Daichi99.45%
2 screens
DHBW Lörrach Campus99.48%
3 screens
Discourse99.87%
3 screens
Expensify99.58%
10 screens
Graysky99.81%
6 screens
Guate Wok99.84%
2 screens
Hacker Reader99.62%
5 screens
Jitsi Meet99.82%
6 screens
Joplin99.71%
4 screens
Kanvil99.78%
2 screens
Ledger Live Mobile Consent PeachLedger Live Mobile Consent iOS
Ledger Live Mobile99.18%
2 screens
Mattermost99.78%
5 screens
MetaMask99.77%
6 screens
Neuland Next99.72%
2 screens
Notesnook99.88%
3 screens
Ota Log99.03%
3 screens
Rainbow99.11%
5 screens
Rocket.Chat99.72%
7 screens
Skull King99.05%
4 screens
Trezor Suite Lite99.94%
5 screens
U-Stat99.53%
4 screens
Uniswap99.74%
8 screens
Zeus99.90%
7 screens

[ Features and scenarios ]

Browse the native behavior each surface needs to match and the conditions attached to its comparisons. Scenario sensitivity and native verification are tracked separately from package implementation scores.

Swift app lifecycle

Scenario sensitivity mapped for 0 of 15 behaviors. Of 24 attached cells, 0 verified, 0 failing and 24 unknown.Attached comparisons do not establish a native match. A current paired proof must qualify every check for the exact setting and scenario. Duo and iPad coverage is beta; results do not transfer between devices.

Canvas affine transforms

GraphicsContext concatenation composes with translation, scaling and rotation; transform assignment replaces the current matrix, including singular matrices, context copies, overlays and isolated drawLayer state, matching native Canvas drawing2 attached scenario cells · 0 verified · 0 failing · 2 unknownSensitivity unknown: device, OS, orientation, appearance, accessibility, container, content, interaction.

Path even-odd contours and self-line clipping

Even-odd normalization preserves overlap holes and touching contours, and identical-operand line intersection and subtraction preserve native retained trails and dash starts2 attached scenario cells · 0 verified · 0 failing · 2 unknownSensitivity unknown: device, OS, orientation, appearance, accessibility, container, content, interaction.

UIKit stroke graphics state

UIColor.setStroke changes the current graphics context stroke color and graphics-state restoration returns drawing to the saved stroke color, matching the native fixture2 attached scenario cells · 0 verified · 0 failing · 2 unknownSensitivity unknown: device, OS, orientation, appearance, accessibility, container, content, interaction.

UILabel baseline adjustment storage and shrinking

UILabel.baselineAdjustment reads back each assigned mode and matches native baseline placement when adjustsFontSizeToFitWidth shrinks long text, with unchanged default drawing in the no-shrink control2 attached scenario cells · 0 verified · 0 failing · 2 unknownSensitivity unknown: device, OS, orientation, appearance, accessibility, container, content, interaction.

TabView appearance and window callbacks

TabView selection changes send hosted controller appearance callbacks with animated false and window callbacks in the native first-visit and return order; reselecting the current tab sends none0 attached scenario cells · 0 verified · 0 failing · 0 unknownSensitivity unknown: device, OS, orientation, appearance, accessibility, container, content, interaction.

CAAnimationGroup timing

group and layer copies retain child animations, evaluate child timing in group time, clip longer children and apply native fill behavior to shorter children2 attached scenario cells · 0 verified · 0 failing · 2 unknownSensitivity unknown: device, OS, orientation, appearance, accessibility, container, content, interaction.

UIKit spring timing providers and settling

spring providers copy and retain their measured constructor values and original velocity, and public settling queries follow the native provider and CASpringAnimation estimates0 attached scenario cells · 0 verified · 0 failing · 0 unknownSensitivity unknown: device, OS, orientation, appearance, accessibility, container, content, interaction.

Property animator timing contracts

property animator activation, paused fractions and retained timing-function control points match the source-bound native consumer rows2 attached scenario cells · 0 verified · 0 failing · 2 unknownSensitivity unknown: device, OS, orientation, appearance, accessibility, container, content, interaction.

SwiftUI Metal color effects

colorEffect, layerEffect and distortionEffect shaders on views, glyphs, strokes and shape fills match the retained native ImageRenderer samples at 3x0 attached scenario cells · 0 verified · 0 failing · 0 unknownSensitivity unknown: device, OS, orientation, appearance, accessibility, container, content, interaction.

Navigation back button label

a pushed NavigationStack screen draws the back button chevron-only and exposes the previous screen title as its accessibility label, matching the native fixture tree2 attached scenario cells · 0 verified · 0 failing · 2 unknownSensitivity unknown: device, OS, orientation, appearance, accessibility, container, content, interaction.

Custom Layout placement of greedy subviews

a custom Layout placing GeometryReader and Color subviews at center, bottom-trailing and top-leading anchors, including a nested layout, matches native placement and size2 attached scenario cells · 0 verified · 0 failing · 2 unknownSensitivity unknown: device, OS, orientation, appearance, accessibility, container, content, interaction.

OutlineGroup rows

an OutlineGroup in a List draws a leaf row, a collapsed disclosure row with children and a disclosure row with an empty children collection as native does2 attached scenario cells · 0 verified · 0 failing · 2 unknownSensitivity unknown: device, OS, orientation, appearance, accessibility, container, content, interaction.

Font default and point size

Text drawn with Font.default and a pointSize modifier matches native glyph size and placement2 attached scenario cells · 0 verified · 0 failing · 2 unknownSensitivity unknown: device, OS, orientation, appearance, accessibility, container, content, interaction.

CGImage-backed Image scale and orientation

decorative and labeled images built from a CGImage with scale 2 and a non-up orientation draw at the native size, orientation and pixels2 attached scenario cells · 0 verified · 0 failing · 2 unknownSensitivity unknown: device, OS, orientation, appearance, accessibility, container, content, interaction.

Initial App construction

the counter fixture constructs App once and its initial WindowGroup renders app-init=1 on native and Peach2 attached scenario cells · 0 verified · 0 failing · 2 unknownSensitivity unknown: device, OS, orientation, appearance, accessibility, container, content, interaction.

[ Essentials ]

[ All Packages ]

969 / 989
Prev
1
2
…
81
Next
Prev
1
2
…
81
Next
Showing 1-12 of 969