React Native iOS — no Mac necessary.

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

Compatibility

Core
99%
127 pixel-checks
Top 100
76%
76 of 100 native
Top 500
25%
125.2 of 500 native
top 500 native libraries by weekly downloads
verified
works
partial
not yet
native
all
Essentials(6 of 6)
react-native
the framework itself · 54 pixel-checked surfaces
97%
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
99%
react-native-screens
freezeEnabled/enableFreeze (always false), statusBarStyle/Hidden/navigationBarColor/Hidden ignored, replaceAnimation differentiation, formSheet/pageSheet modal differences, integrated search bar placements
99%
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
99%
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
99%
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)
98%
All Packages(182 of 318)
1-12
prev
1 / 16
next
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
100%
expo-linear-gradient
CanvasKit gradient shader via _gradientColors style prop, full API
99%
react-native-pager-view
overdrag (accepted but ignored), offscreenPageLimit (accepted but ignored), pageMargin, keyboardDismissMode, native scroll fidelity (momentum physics differ)
99%
expo-image
transition/animation effects, placeholder rendering, blurRadius, contentPosition, sfEffect/SFSymbol, allowDownscaling, autoplay (GIF), responsivePolicy
98%
@mozzius/expo-dynamic-app-icon
noop icon switching — correct for browser, useDynamicAppIcon hook is functional
100%
@react-native-async-storage/async-storage
full localStorage-backed implementation
100%
@react-native-community/checkbox
HTML checkbox input with accentColor tinting
100%
@react-native-community/datetimepicker
HTML date/time/datetime-local input; Android imperative API stubbed
100%
@react-native-masked-view/masked-view
engine-level masked-view node with canvaskit saveLayer + BlendMode.DstIn alpha compositing
100%
@react-native-picker/picker
HTML select element with full Picker API including Picker.Item, modes, focus/blur
100%
@welldone-software/why-did-you-render
intentional noop — wdyr mutates React internals and crashes sootsim's bridged React
100%
expo-glass-effect
liquid glass via CanvasKit _liquidGlass style descriptor; hooks and availability covered
100%
1-12
prev
1 / 16
next
verified
works
partial
not yet