React Native 0.79 (April 2025) is here, and it’s a doozy. This release is packed with performance wins and developer-friendly tweaks across the board. In plain terms: it just got way cooler to build RN apps. Metro (the JS bundler) now starts up around 3× faster thanks to deferred hashing, and it fully supports modern package.json exports/imports fields out of the box. Android apps launch much quicker (we’re talking ~400ms shaved off in some tests), and iOS native modules can be registered with Swift-friendly codegen, cutting boilerplate.
Under the hood, RN’s JavaScriptCore (JSC) engine has been moved into a community package for faster updates, and legacy Chrome remote debugging is gone in favor of newer DevTools.
Plus, React 19 is the default React version now – unlocking shiny new hooks like Actions and useOptimistic. And if you’ve been following along, React Native’s “New Architecture” (Fabric/TurboModules) is already on by default and now rock-solid.
Bottom line: RN 0.79 is all about speed, modern tooling, and slick developer experiences. Let’s dive into the highlights! 🎉
⚡ Metro Bundler: Turbocharged
First up, Metro got a serious turbocharge. RN 0.79 ships Metro 0.82, which uses deferred hashing to cut cold-start times by about three times (even more in big projects/monorepos).In practice, your yarn start will spin up almost instantly compared to before. Metro 0.82 also now officially honors the exports and imports fields in package.json, which means you can use modern, standards-compliant module resolution without workarounds. In short – wait times are slashed and your project’s module graph just got a whole lot cleaner. Faster bundling means more time coding and less time staring at the terminal!😎
📱 Android: Launch at Ludicrous Speed
Android developers, rejoice! 0.79 changes how the JS bundle is packaged in your APKs. By default now, RN doesn’t compress the JS bundle in the APK Why? Previously Android would have to unzip that bundle on startup, causing delays. Now the bundle is just stored uncompressed on the device, so the app pops open much faster. In fact, Discord’s team saw a ~400ms (12%) startup speedup on a mid-tier phone (Samsung A14) with just this one tweak. (There’s a tradeoff: a slightly bigger on-device footprint, but APKs downloaded from the Play Store remain compressed, so users don’t pay the price on install.) You can even toggle this via enableBundleCompression in app/build.gradle if you want to balance size vs speed. The bottom line – way faster Android cold starts with virtually no downside.
🍎 iOS: Swift Modules Made Easy
iOS got some smooth upgrades too. 0.79 revamps how native modules hook into the RN app. Instead of writing a bunch of registration code in Objective-C, you now add a modulesProvider section in your app’s package.json. In practice, that means Swift and ObjC native modules can self-register via the codegen system, with zero changes to your AppDelegate. This new modulesProvider field lets you define the JS name and Swift/ObjC provider class in JSON, and React Native handles the rest. No more wrestling with headers or boilerplate – native modules just slide in seamlessly. (Good news if you love Swift: the old 0.77 limitation—where pure C++ modules couldn’t register on a Swift AppDelegate—is now history. Everything just works without extra glue code.)
🔧 Under the Hood: Modern Engines & Debugging
Under the hood, RN 0.79 is trimming fat and updating engines. JavaScriptCore (JSC), the default JS engine on iOS/Android, is being spun out into its own community package (@react-native-community/javascriptcore). What does this mean for you? RN core becomes leaner, and the JSC engine can be updated on its own schedule to grab new language features and security fixes. (If you’re using Hermes instead of JSC, nothing changes – Hermes users are unaffected.) On the debugging side, say goodbye to the old-school Chrome remote debugger. RN 0.79 removes Remote JS Debugging via Chrome. The team recommends using the built-in React Native DevTools or other modern tools instead. In other words, dump the buggy round-trip hacks and use the official DevTools console and React inspector – they’re more stable and fully featured. It might feel like the end of an era, but it’s for the better: cleaner toolchain, better breakpoints, and no more mysterious Chrome handshake issues.
🎉 React 19: The Future Is Now
Remember React 18? Well, now RN has React 19 as the engine under the hood (after a quick app upgrade). This brings some flashy new React features into your RN apps. Think built-in async transitions (Actions) and hooks like useOptimistic for easy optimistic UI updates. For example, Actions lets you define a function whose work happens in a suspendable, concurrent way, handling pending/error states for you. useOptimistic helps show a “predictive” UI state while waiting for a server response. You can even pass refs as props instead of wrapping in forwardRef, thanks to React 19. Just a heads-up: upgrading means you need to adjust anything that used removed APIs (like legacy propTypes), but most apps will seamlessly gain the new hooks and improvements. In short, RN 0.79 finally puts the latest React magic in your toolbox.
🤖 New Architecture: Rock Solid and Ready
If you’ve been following React Native’s progress, you know about the “New Architecture” (Fabric renderer + TurboModules). Good news: it’s the default now and fully stable. Since RN 0.76, the new architecture has been enabled by default in new projects. By 0.79 it’s considered production-ready. That means if you’ve already opted in, you get its benefits: smoother UI (Fiber-based mounting), better concurrency, and faster native module bridging. The core is now all set up for Fabric, so your UI interactions and thread-hopping native calls are as performant as they can be. Think of it as the solid foundation that future RN features will build on — and in 0.79 it’s completely baked in and battle-tested.
🎨 Styling and Other Goodies
Finally, let’s talk style (literally!). RN 0.79 keeps up all the recent strides in layout and style props. For instance, earlier versions (like 0.76) already introduced new CSS-like style props such as boxShadow and filter, and 0.77 added flexbox gap support and percentage-based sizing. These aren’t new in 0.79 per se, but they’re fully there for you to use. This means crafting polished UIs is easier: shadows, blurs, and layout gap control are all part of the toolkit now. Plus, the release includes tons of bug fixes and small upgrades under the hood (like dozens of internal modules moving to modern export syntax). It’s the kind of release where everything feels just a bit smoother and snappier.
💡 Key Takeaways
- Metro bundler is insanely faster: cold-start is ~3× quicker with deferred hashing, and modern package.json exports/imports work out-of-the-box.
- Android startup is much faster: RN now ships uncompressed JS bundles by default, shaving ~400ms (12%) off time-to-interactive on tested devices.
- iOS modules registration is simpler: add a modulesProvider entry in package.json and Swift/ObjC native modules auto-register (no AppDelegate edits).
- JSC engine has moved to a community package. This modularizes RN core so JS engine updates (and new JS features) can come faster.
- Chrome remote debugging is gone.Use React Native DevTools or other modern debuggers instead – they’re more stable and feature-rich.
- React 19 support: RN 0.79 runs React 19, unlocking features like async Actions, useOptimistic, and passing ref props (after updating your app for any removed APIs).
- New Architecture (Fabric/Turbo) is now default and battle-tested.Enjoy smoother rendering and faster native modules out-of-the-box.
- Better styling: RN’s style system keeps getting richer. New props like boxShadow and filter are available, so crafting nice UIs is even easier.
React Native 0.79 isn’t about flashy new widgets – it’s about a leaner, meaner, faster toolkit for serious app builders. Faster bundling, snappier startups, and modern internals mean you spend more time building and less time wrestling with plumbing. So grab 0.79, upgrade your app, and enjoy the turbocharged ride! Happy coding! 🎉