Motion Jul 9, 2025

React Native Performance Crisis: Solving 190% CPU Usage

Article Summary

Matt Sellars from Motion watched their React Native calendar screen peg CPU at 190%. The culprit? View bridges tripling rendering overhead between JS and native code.

Motion started with React Native for the usual startup reasons: shared codebase, small team, fast iteration. But as their calendar app grew, performance collapsed on heavy screens. Even with native-capable engineers and aggressive optimization attempts, the architecture hit a wall.

Key Takeaways

Critical Insight

Motion's solution: prototype fast in React Native, then selectively rewrite performance-critical screens in native code for a 97% CPU reduction.

Their new hybrid workflow leverages an unexpected tool to keep native iOS and Android development in sync without doubling engineering effort.

About This Article

Problem

Motion's React Native calendar rendered 4 days at once to enable smooth swiping, but the constant JS-to-native bridge crossings caused CPU usage to spike uncontrollably during app startup and navigation.

Solution

Matt Sellars' team converted just the calendar screen to native Swift and Kotlin code while keeping the rest of the app in React Native. This let them optimize the performance bottleneck without rewriting the entire app.

Impact

The native calendar screen cut CPU usage from 190% down to 5%. It shows that a hybrid approach works well. You can prototype in React Native first, then convert the screens that need it to native code. This gives you both fast iteration and real native performance.

Related Articles