Novick argues that animation should help people understand an app, navigate it, and follow its flow. Good animation can reduce cognitive load, while flashy or unexpected effects can create friction and distract users. He compares recognizing a drawn square with processing a lengthy verbal description of one.
Demystifying complex animations creation process in React Native
Speaker
Independent consultant Vladimir Novick speaks about designing and building animations for React Native at React Native Europe.
Novick distinguishes state-driven animations, such as a modal that simply fades in and out, from action-driven animations that show what a user did. A form that flies in from the right and closes toward the same corner gives users a clearer hint about what happened. Small details, such as a chat message appearing from below or an inbox number rotating, can make an interface feel more natural.
To make a complex design manageable, Novick recommends separating it into animation types and visual changes. His example includes micro-interactions, screen transitions, parallax scrolling, gesture animations, and on-scroll headers, plus changes in scale and position. He uses React Navigation Fluid Transitions to animate shared images between screens and Animated values to drive a horizontal parallax effect.
Novick cautions that interpolation needs carefully chosen ranges, pointing to common header-animation bugs as an example. For gestures, he describes how PanResponder uses JavaScript, while Gesture Handler with Reanimated can process gestures natively. For elaborate artwork, Lottie can help, but exported JSON may be large, malformed, crash apps, or lack support for 3D.
Novick advises developers to discuss a design’s intent with designers and listen to QA, since what seems obvious to a developer may confuse users. He recommends avoiding complexity that mainly serves a portfolio or technical challenge. Teams can refine familiar patterns while preserving what users already recognize.
Takeaways
- Give each animation a clear job: explain an action, show a state change, or guide navigation.
- Break a complex motion design into transitions, scrolling, gestures, micro-interactions, and individual style changes.
- Review animation behavior with designers and QA to catch interactions that are unclear to users.
- Use Reanimated with Gesture Handler when gesture performance matters, and check Lottie exports for size and compatibility.
- Favor familiar, fluid motion over effects that add distraction or cognitive friction.
Mentioned in this talk
Search inside this talk
What was claimed 5
- integrates withReanimated integrates with React Native Gesture Handler
“React Native Gesture Handler and Reanimated offer a really nice pair for creating gesture-driven animations.”
10:05inModern Animating in RN - an Introduction to Reanimated V2YouTube Verified4 sources· Talk
- featureFluid Transitions: Shared elements can be animated between screens by calculating their positions on each screen
“The library calculates the image’s position on the first and second screens, then animates it to where it’s supposed to go.”
YouTube Unverified1 source· Talk
- featurePanResponder: Processes gestures through JavaScript
“PanResponder works with JavaScript, and you have the JavaScript bridge.”
YouTube Unverified1 source· Talk
- featureReanimated: Runs animations natively
“Reanimated works natively.”
YouTube Unverified1 source· Talk
- featureLottie: Wraps a native library and renders JSON animation files
“It's basically a wrapper for a native library, and it loves JSON—it draws JSON.”
YouTube Unverified1 source· Talk





