React Native 0.82, Android at 60 FPS, and Spending Quality Time with Your Keyboard

Issue #20

20 October 2025
6 Minutes


The Prophecy Is Upon Us


React Native 0.82: A New Era


The screen fades to black.

A faint hum of compilation.

Somewhere, a bridge collapses quietly into history.

Version 0.82 of React Native is now available and apparently “A New Era” awaits, so pour yourself a fair-trade matcha, take a deep breath, and welcome the age of synchronous enlightenment.

Since 0.76, the New Architecture has slowly crept its way into our projects — first as “default”, then as “recommended”, and now as “mandatory”. This means that if you try to set newArchEnabled=false on Android, or if you try to install CocoaPods with RCT_NEW_ARCH_ENABLED=0 on iOS, these will be ignored and your app will still run using the New Architecture.

In a subplot that feels distinctly Fast & Furious: JavaScript Drift, React Native 0.82 introduces an experimental Hermes V1 — Meta’s faster, leaner, meaner JS engine (Hermes is the open-source JavaScript runtime built specifically for React Native to optimise startup time and memory use). It’s still early access (you’ll need to build from source), but benchmarks show up to 9% faster loads on iOS and 7.6% speedups on Android.


Hermes V1 is experimental and isn’t enabled automatically. If you want to enable it in React Native 0.82, the team has put together a guide that involves some package.json and Pod sorcery (don’t worry—it’s only four steps). If you’d like to enjoy this nice speed boost, don’t tell your PM—it’s at least three days of work 😉 You can thank us later.

And speaking of speed — you know how we’ve all joked that no one likes Android? Well, apparently someone at Meta must have heard us, because Android just got some long-overdue performance love.

React Native 0.82 adds a new build variant called debugOptimized. It keeps JavaScript debugging intact while flipping on a few C++ optimisations under the hood, making animations and re-renders dramatically smoother.


The trade-off is that you lose access to the native C++ debugger — but let’s be honest, you probably weren’t using that anyway. The payoff is real, though: developers are reporting debug builds that once limped along at 20 frames per second now gliding smoothly at 60.


In case you’re still on 0.81 or Expo SDK 54, good news — debugOptimized has been back-ported there too.

And, just when you thought React Native was done reinventing itself, 0.82 quietly adds something almost philosophical: DOM (Document Object Model) Node APIs. For the first time, React Native components now expose DOM-like nodes via refs — meaning you can finally traverse, inspect, and measure elements as if you were on the web.

Before, a ref in React Native was like a polite but unhelpful butler — it could measure things or apply styles, but it didn’t really know where it was in the UI hierarchy. What you got back was a custom object with a couple of bespoke methods:


Now, instead of returning a custom object with a few limited methods, the ref now returns a node that exposes a standardised set of DOM-like properties and methods. This introduces a familiar standard for measuring and traversing layout:


This shift may seem small, but it’s part of a much bigger undercurrent in React Native’s evolution. By aligning its internals with the web, React Native is quietly preparing for a multi-platform future — one where React itself becomes the universal UI language.

We’re not far from the day when you’ll build a single React Native project and deploy it everywhere: Web, iOS, Android, Desktop, TV, Watch — and whatever new rectangle with a screen emerges next.

👉 React Native 0.82 - A New Era



The Test and The Touch


Callstack Builds the Belt


Callstack’s added another tool to its belt — or rather, the belt itself. Their latest, React Native Harness, is a new way to test native modules on real devices without writing a full end-to-end script in Detox (a UI automation framework for React Native apps) or Maestro (a cross-platform mobile UI testing tool). Think of it as Jest (the go-to JavaScript test runner for unit tests) — if Jest could actually talk to your phone.

Normally, JavaScript unit tests never touch native code. Jest runs in Node.js, far from anything that speaks Swift or Kotlin. React Native Harness changes that by bundling your test files with Metro, shipping them to a Hermes-powered runtime on an actual device or simulator, executing the tests there, and then sending results back to your terminal.

So instead of mocking NativeModules in Node, you can actually hit the real ones. Yes really.


It uses the same syntax you already know from Jest — describe, test, expect, and all the familiar lifecycle hooks like beforeEach and afterAll. But make no mistake: this isn’t Jest under the hood. It’s its own lightweight runner purpose-built to execute tests inside React Native’s environment, not outside of it.

If you’re building or maintaining a native module — say, something in Swift or Java bridging into JavaScript — your choices used to be bleak: mock everything in Jest (fast, but fake), or spin up a full E2E (end-to-end) test with Detox (real, but painful and slow). Harness gives you a middle ground: fast, device-level tests that touch real native code without needing to drive the UI.

It’s especially useful for library authors and anyone writing custom native functionality. You can validate that your native module actually works on device — without manually opening Xcode or wiring up Detox flows.

👉 Callstack’s React Native Harness

Quality Time with Your Keyboard


Kirill Zyusko’s (@ziusko) just released React Native Keyboard Controller 1.19 which refactors the toolbar API, adds instant dismissal, and brings smoother support for React Native 0.80.

If you’ve been anywhere near React Native X communiry lately, you’ve seen the wave: everyone’s rewriting their APIs to ditch prop soup in favour of composition. If you missed it, Fernando Rojo’s “Composition over Props” talk has probably influenced half the ecosystem to do exactly this.

Keyboard Controller
is the latest convert. Where earlier versions of the toolbar were a long list of props that made your code feel like a rental agreement, the new compound API uses a fully composable component structure. You don’t just configure the toolbar; you assemble it.


The update also adds something you didn’t know you needed until now: instant keyboard dismissal. You can now call KeyboardController.dismiss({ animated: false }) to close the keyboard immediately — no slow fade, no “one last bounce.”


Perfect for shared transitions, performance demos, or when you just want the keyboard to know its place.

👉 React Native Keyboard Controller 1.19



Before you Go…


Speak, Simulator


Imagine talking to your iOS Simulator — not through menus or Xcode clicks, but actual commands. That’s what iOS Simulator MCP does. It’s an AI-driven controller that can poke, swipe, type, and navigate the Simulator like a digital tester with perfect recall.

It started as a Model Context Protocol server, just a simple way to send commands to the Simulator. Then it learned to move, see, and type. That’s right: the Simulator can now open itself (open_simulator), install .app bundles (install_app), and even launch them by bundle identifier (launch_app). No clicking, no Xcode menus, no scrolling through lists of test builds. Just one command and your pretend phone obeys.


The project — by @joshuayoes — has quietly evolved into something more like a developer-side AI layer for iOS emulation. You can tap, type, swipe, take screenshots, record videos, or inspect accessibility data — all through commands or API calls. It’s less “automation tool” and more “digital assistant who happens to live inside the Simulator.”


We could soon be looking at a time when we say, “Run tests for this feature for me,” and the AI goes off to run a bunch of user testing, testing your app like a real tester and reporting back.

It’s already been featured by Anthropic, the React Native Newsletter, and a few automation roundups — because honestly, who doesn’t want to talk to their simulator?

At this point, all it needs is a voice.

When that happens, I’m switching my iPhone to airplane mode.

The VaultHitchhiker's Guide
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Take me back to the paradise city, where the grass is green and the girls are pretty, oh, won’t you please take me home…
Made with 👽 tech by Luke Farrell, Seyda and Friosn.