Version matrix tied to Expo SDK 57. Reanimated 4 runs animations on the UI thread; Gesture Handler moves touch recognition to native so pans stay at 60fps. Install them as a pair. For shared values, springs, and composed gestures, see react-native-reanimated 4 and react-native-gesture-handler.
// ✅ Worklet components and stylesimport Animated, { useAnimatedStyle, useSharedValue } from "react-native-reanimated";// ❌ Do not mix for gesture-driven UIimport { Animated } from "react-native";
Babel plugin not last - Worklets fail; animations stutter on JS thread. Fix: Move react-native-reanimated/plugin to end of plugins; npx expo start --clear.
react-native-reanimated~4.0.0 and react-native-gesture-handler~2.28.0. Run npx expo install - do not copy versions from older blog posts.
Do I need both packages?
Install both together. Gesture Handler is required for Gesture.Pan and native scroll conflicts; Reanimated drives UI-thread values from gesture callbacks.
Where does the Babel plugin go?
Last entry in babel.config.jsplugins array - after all other plugins. Restart Metro with --clear.
Does Reanimated require New Architecture?
SDK 57 projects increasingly run Fabric + Hermes by default. Reanimated 4 targets that stack.
Stack versions: This page was written for React 19.2.3, React Native 0.86.0, and Expo SDK 57 (expo ~57.0.4). 636f64656775696465732e696f7c6367696f3937397c323032363037
Reviewed by Chris St. John·Last updated Jul 19, 2026