Animated with the native driver can only play an animation it was given; it cannot run logic per frame. A drag that snaps to a shelf or a header whose height follows the scroll needs code every frame, and with Animated that code runs on the JavaScript thread, where any other work shows up as a stutter.
Reanimated 11,010 runs small functions, worklets, in a second JavaScript runtime on the UI thread, where they read and write shared values frame by frame without React 7,897 re-rendering. Reanimated 4 needs the New Architecture and moved the worklet machinery into react-native-worklets. Its code lives at github.com/software-mansion/react-native-reanimated (https://github.com/software-mansion/react-native-reanimated 11,010 ) (MIT licensed). BookNest installed both, plus two modules Interaction APIs needs, through Expo 6,418 so that the versions match the SDK:
npx expo install react-native-reanimated react-native-worklets react-native-gesture-handler \
expo-clipboard expo-linking› Installing 5 SDK 57.0.0 compatible native modules using npm > npm install added 23 packages, and audited 501 packages in 17s
| Package | Expo SDK 57 installs | npm 2,036 latest (24 Sep 2026) |
|---|---|---|
| react-native-reanimated | 4.5.1 | 4.7.0 |
| react-native-worklets | 0.10.1 | 0.13.0 |
| react-native-gesture-handler 6,788 | ~2.32.0 | 3.3.0 (2.33.0 tagged "legacy") |
Stay on the SDK's pins: each Reanimated release supports a narrow window of React Native 36,878 versions and one worklets line. The libraries contain native code, so they need a development build; babel-preset-expo adds the worklets Babel 41,624 plugin, while a Community CLI project lists react-native-worklets/plugin last in its Babel config.