------

initializing

← Back to Blogs

Why I Learnt React Native Over Flutter

June 20266 min read

The Cross-Platform Dilemma

When I first decided to build mobile applications, I hit the classic cross-platform roadblock: React Native or Flutter? Both promise 'write once, run anywhere', but the underlying philosophies couldn't be more different. Flutter gives you a beautiful, isolated canvas with its own rendering engine, while React Native bridges your code directly to native OEM components.

Bridging the web to mobile vs Isolated rendering
Bridging the web to mobile vs Isolated rendering

The Power of the Ecosystem

Ultimately, my decision came down to the ecosystem. I was already deeply embedded in the React and Next.js world. Learning Dart just to build a mobile app felt like isolating my skillset. With React Native, I could share business logic, state management (like Redux), and utility functions seamlessly between my web dashboards and mobile apps. The massive NPM ecosystem meant that whatever problem I faced, someone had already written a battle-tested library for it.

Native Modules and the Escape Hatch

React Native isn't perfect—the JavaScript bridge can be a bottleneck. But its superpower is the 'escape hatch'. When I needed to build DropRoom with intense WebSocket performance, I could easily drop down into native code (Swift/Kotlin/Go) to handle the heavy lifting, while keeping the UI in React. It's the perfect balance of developer velocity and native power.