React Native iOS — no Mac necessary.

A 100% web iOS React Native simulator.
Agents 10x faster, simulators 100x cheaper.
npm i -g sootsim

Compatibility

top 500 native libraries by weekly downloads
verified
works
partial
not yet
Each package's score blends pixel-match across captured side-by-side iOS comparisons with a registry estimate of how much of the package's API surface is implemented — weighted by how much of the package the captures actually exercise. Hover any number to see the breakdown.
native
all
Essentials(6 of 6)
react-native
the framework itself · 56 pixel-checked surfaces
react-native-gesture-handler
DrawerLayout (passthrough noop), NativeViewGestureHandler still lacks native-scroll coupling and handlerTag semantics, cross-detector simultaneousWithExternalGesture/requireExternalGestureToFail, ForceTouch semantics are placeholder-only
react-native-screens
freezeEnabled/enableFreeze (always false), statusBarStyle/Hidden/navigationBarColor/Hidden ignored, replaceAnimation differentiation, formSheet/pageSheet modal differences, integrated search bar placements
react-native-keyboard-controller
per-frame keyboard progress events (smooth `onMove` requires SAB-backed shared values driven from the shell-side keyboard animation; deferred — see plans/real-worklets.md)
react-native-reanimated
layout animation builders are exported but no enter/exit animation actually plays, useScrollViewOffset returns static 0, useAnimatedSensor static, useReducedMotion always false, useAnimatedKeyboard height tracking returns 0
react-native-svg
SVG filter primitives (Filter, FeBlend, FeColorMatrix, FeGaussianBlur, FeComposite, etc) — all fe* skipped; ClipPath/Mask/Use/Pattern/Symbol/Image listed as skipped in engine
All Packages(192 of 333)
1-12
prev
1 / 16
next
expo-linear-gradient
CanvasKit gradient shader via _gradientColors style prop, full API
react-native-pager-view
overdrag (accepted but ignored), offscreenPageLimit (accepted but ignored), pageMargin, keyboardDismissMode, native scroll fidelity (momentum physics differ)
expo-image
transition/animation effects, placeholder rendering, blurRadius, contentPosition, sfEffect/SFSymbol, allowDownscaling, autoplay (GIF), responsivePolicy
expo-video
player.duration stays 0 (no timeupdate listener), player.currentTime not synced from element, statusChange/volumeChange/timeUpdate events not emitted, useEvent hook not exported, DRM support absent
@mozzius/expo-dynamic-app-icon
noop icon switching — correct for browser, useDynamicAppIcon hook is functional
@react-native-async-storage/async-storage
full localStorage-backed implementation
@react-native-community/checkbox
HTML checkbox input with accentColor tinting
@react-native-community/datetimepicker
HTML date/time/datetime-local input; Android imperative API stubbed
@react-native-masked-view/masked-view
engine-level masked-view node with canvaskit saveLayer + BlendMode.DstIn alpha compositing
@react-native-picker/picker
HTML select element with full Picker API including Picker.Item, modes, focus/blur
@welldone-software/why-did-you-render
intentional noop — wdyr mutates React internals and crashes sootsim's bridged React
expo-glass-effect
liquid glass via CanvasKit _liquidGlass style descriptor; hooks and availability covered
1-12
prev
1 / 16
next
verified
works
partial
not yet