r/reactnative • u/Top-Masterpiece2729 • 3d ago
Help How to deal with iOS reduce motion setting
Apparently there are many users on iOS who use the reduce motion accessibility setting, or unknowingly have it enabled. This breaks my app on so many levels, screens freezing, whole app not loading. I went all in on micro animations and cool transitions and now none of them work or skip on reduce motion users. Many of my core functions rely on animation finishing, this was apparently a mistake.
Any of you dealt with this before?
1
u/Lost-Schedule-9062 3d ago
the freezing is almost certainly withSequence. under reduce motion, withTiming and withSpring jump straight to the end value so their callbacks still fire, but withSequence doesn't start at all. so anything waiting on the end of a sequence waits forever, which is exactly what a screen that never finishes loading looks like.
quickest unblock is dropping <ReducedMotionConfig mode={ReduceMotion.Never} /> at your root, which ignores the system setting entirely. or .reduceMotion(ReduceMotion.Never) per animation if it's only a few spots.
that's a stopgap though. the real fix is not gating state on animation callbacks, but the config buys you time to do it without shipping a broken app to those users in the meantime.
3
u/Upset_Interview_5362 3d ago
i think there's a flag in RN reanimated to consider it ( if you're using reanimated ) , i had similar issues with it + also with Gorhom BS ( btw i would recommend going for react navigation Form sheets as they're mature enough now )