Both libraries are open source and free; the choice is about where your per-frame code runs and what it costs to add a native dependency.
| Question | Animated (core) | Reanimated 4 |
|---|---|---|
| Install | Built in | Two packages, a development build |
| Per-frame logic | JavaScript thread | UI thread (worklets) |
| Layout props (height, width) | JavaScript driver only | Yes, on the UI thread |
| Gestures | PanResponder, JS decisions | Gesture Handler 6,788 , native recognizers |
| Mount and unmount animations | LayoutAnimation, global | entering, exiting, layout per view |
| CSS-style animations | No | Yes (animationName, transitionProperty) |
| Architectures | Old and New | New Architecture only |
Use Animated for fire-and-forget effects on transform and opacity in dependency-free code. Use Reanimated as soon as motion follows a finger, animates layout or needs logic per frame. Mixing both in one app is fine; mixing them on one view is not, because each writes the view's props on its own schedule.