Software Mansion Feb 27, 2026

The Future of Video in React Native: Moving from Expo AV to Expo Video

Article Summary

Wiktor Gut from Software Mansion just migrated Expensify to expo-video, and the architectural shift is bigger than you think. Expo SDK 55 officially removes expo-av, forcing every React Native team to rethink video playback.

Software Mansion's Wiktor Gut led the migration from expo-av to expo-video at Expensify and breaks down the fundamental changes. This isn't just a library swap: it's a complete architectural redesign that separates playback logic from UI rendering, mirroring native iOS and Android patterns.

Key Takeaways

Critical Insight

expo-video brings native-level control to React Native video with a hook-based API that dramatically reduces boilerplate and improves performance through granular event handling.

The article includes side-by-side code comparisons and a live Expo Snack demo showing exactly how the new API handles edge cases that plagued expo-av.

About This Article

Problem

React Native developers using expo-av ran into performance issues because the onPlaybackStatusUpdate callback fired constantly. It triggered on every state change, including multiple time updates each second, which meant handler logic got re-evaluated far too often.

Solution

expo-video switched to a subscription-based event model with useEvent and useEventListener hooks. These hooks break updates into separate, focused events so that logic only runs when something actually changes.

Impact

This approach cuts down on callback overhead. The isPlaying state now updates only when playingChange fires, and playbackRateChange logic runs only when the rate shifts. Previously, both would re-evaluate every time currentTime updated.

Recent from Software Mansion

Related Articles

AI Tools for React Native

Browse all AI tools →