Conformance with popular native packages.We test and build compatibility stubs of the top 2,000 most popular React Native packages with native dependencies, many via pixel-diffing to ensure perfect accuracy.
top 500 native libraries by weekly downloads verifiedpixel-diffed vs real iOS the framework itself · 100 pixel-checked surfaces Core Essentials
Reanimated 4 native CSS keyframes/transitions, getViewProp, and direct setViewStyle remain incomplete react-native-gesture-handler DrawerLayout (passthrough noop), NativeViewGestureHandler still lacks native-scroll coupling and handlerTag semantics, ForceTouch semantics are placeholder-onlystatusBarColor/navigationBarColor/navigationBarTranslucent ignored, replaceAnimation differentiation, interactive drag between formSheet detents, 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)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(606 of 768)
@react-native-masked-view/masked-view engine-level masked-view node with canvaskit saveLayer + BlendMode.DstIn alpha compositingfull splash wired to the sootsim canvas boot splash, including the app's REAL configured artwork. the config plugin's image + backgroundColor (+ imageWidth, resizeMode, dark variant) and the legacy expo.splash / expo.ios.splash blocks are parsed and painted on boot exactly like the native splash window. setOptions({fade,duration}) is honored: hideAsync()/hide() cross-dissolve the splash over the configured duration (default 400ms, fade default off — mirroring ios/SplashScreenManager.swift hide()); preventAutoHideAsync holds the splash until the app hides it. matches upstream index.native.ts semantics. CanvasKit gradient shader via _gradientColors style prop, full API real native bundle metadata, Android id/install referrer on non-Android platforms, push entitlement inspection real binary-derived embedded app config, Expo Updates manifest2, expoGoConfig/easConfig, physical-device status bar and system font enumeration real IP lookup, cellular/wifi/ethernet subtype detection, Android-only airplane mode detection the device frame does not visually re-lay-out on lock — faithful to the browser/fixed-sim-frame limitation (identical to react-native-orientation-locker, not a sootsim-specific gap); there is no physical rotation sensor on a fixed sim device so DeviceOrientationEvent-driven auto-rotation is intentionally absent (matches a locked iOS device) canUseBiometricAuthentication always false (no biometric prompt available on web — correct unavailable shape), requireAuthentication not enforced beyond storage partitioning/encryption (no biometric prompt to require), keychainAccessible does not affect browser storage access. sync reads cannot synchronously cold-load IndexedDB after a fresh worker boot; async reads hydrate the cache. all of these are honest absent-on-web semantics — apps with graceful-degradation paths behave correctly. native share sheet UI, native file readability validation, incoming share extension app-group storage real iOS StoreKit review prompt presentation react-native-safe-area-context rotation-specific provider frame deltaspersistent native EXTaskService storage, app relaunch/headless execution, real task execution while the browser tab is suspended (browsers do not have iOS Background Fetch / Android WorkManager)