Learn REACT-NATIVE-REANIMATED with Real Code Examples
Updated Nov 26, 2025
Installation Setup
Install: npm install react-native-reanimated
Enable Reanimated Babel plugin in babel.config.js
Add Reanimated's Babel plugin as last plugin
Ensure Hermes engine enabled for best performance
Add Reanimated's native code via pod install (iOS)
Environment Setup
React Native 0.70+ recommended
Hermes engine enabled
Gesture-handler installed
Correct Babel plugin placement
Developer mode animations disabled for production feel
Config Files
babel.config.js - Reanimated plugin setup
index.js - gesture handler & Reanimated setup
metro.config.js - optional optimizations
ios/android native configs as needed
tsconfig.json - type support for Reanimated
Cli Commands
npm install react-native-reanimated
npx pod-install (iOS)
npm run android / ios
npx expo prebuild (for bare native code with Expo)
yarn start for metro server
Internationalization
Animations unaffected by language
Gesture directions may differ (LTR/RTL)
Use adaptive transitions for RTL layouts
Text-containing components translate normally
No text in worklets unless necessary
Accessibility
Animations respect reduced motion settings
Gestures must be keyboard-accessible (where applicable)
Avoid essential content behind animations
Provide alternative interactions for critical flows
Screen readers unaffected by animations
Ui Styling
Animated styles modify transforms, opacity, layout
Works with standard RN styles
Supports smooth transitions and interpolation
Integrates with gesture-driven UI
Works with custom components and Skia
State Management
Shared values store animation state
Derived values compute reactive logic
Worklets manipulate state on UI thread
External React state interacts indirectly
Multiple animations can run in sync
Data Management
Animation states remain in UI runtime
JS data must be serializable for worklets
Shared values bridge UI and JS threads
Avoid large objects in worklets
Lightweight updates ensure 60fps