
RN 0.84: Goodbye Xcode Waiting Times, Hello Hermes V1
Muhammad Kamran
RN 0.84 dropped last month. At first glance, it doesn't look like it has any flashy new features, but it actually makes a solid impact on daily dev life. Then 0.84.1 rolled out to squash the usual post-release bugs. Let's cut the crap and look at what actually changed.
Hermes V1 is Now Default
This is the big one. Hermes V1 is now the default JS engine across both iOS and Android. If you've been using Hermes since 0.70, you're just getting a free performance boost now.
Time to Interactive (TTI) on complex views is up 10–15%. That's not just benchmark fluff; it genuinely feels faster for the end user. We also get to drop unnecessary Babel plugins, which means faster Metro bundling and less config headaches. If you still have the urge to debug RN internals, just set RCT_USE_PREBUILT_RNCORE=0 and build from source.
Xcode Builds Are Finally Fast
If you've ever stared at an Xcode build progress bar for 10+ minutes after a pod install, you know the pain. Now, precompiled .xcframework binaries download automatically during pod install. No more compiling the React Native core from scratch on every single clean build.
On M4 Macs, clean builds dropped from minutes to literally seconds. Even if you're stuck on older hardware, the difference is massive. You'll notice it immediately.
Trashing the Legacy Architecture
Following up on 0.82, they are aggressively ripping out Legacy Architecture code. The RCT_REMOVE_LEGACY_ARCH flag is the default now. Your iOS builds won't even include the old code anymore—meaning faster builds and a smaller app size.
On Android, massive legacy classes like LazyReactPackage, CxxModuleWrapper, and LayoutAnimationController are completely gone. If you're fully on the New Architecture, nothing breaks. The Interop Layer is still there to handle compatibility.
Web APIs Are Actually Standard Now
They finally bridged the gap for URL and URLSearchParams. Missing standard properties (hash, host, pathname, etc.) and methods (get, set, delete) are actually there now. That annoying silent bug where query strings parsed differently in RN compared to a browser or Node environment? Gone. They also fixed a stupid duplicate entry bug.
It's a quiet update, but if your app relies heavily on URL parsing, this is going to save you a lot of debugging time and headache.
Enjoyed this article?
Check out more of my content or get in touch if you'd like to work together on your next project.