React Native 0.86, SPM, Gesture Handler 3, Apex, and Agent Device

Authors
Michał Pierzchala
Principal Engineer
@
Callstack
No items found.

Hey,

It’s Michał with June’s edition of the newsletter. React Native had a very infrastructure-heavy month: 0.86 shipped, SPM support is getting real, Gesture Handler 3.0 landed for the New Architecture, and the ecosystem keeps moving toward faster runtimes, better native modules, and more reliable testing.

Meanwhile at Callstack Incubator, we’ve been busy with Voltra, Apex, Agent Device, React Navigation, Brownfield, local LLM experiments, and core React Native work. Let’s go!

Community highlights

  • React Native 0.86 + Swift Package Manager support: No breaking changes (again!). React Native 0.86 is a stability-first release with Android 15+ edge-to-edge fixes, DevTools improvements, and new JSI APIs. At App.js, Meta and Expo also previewed npx react-native spm, a path toward replacing CocoaPods with SPM-generated Xcode projects, codegen, and shared XCFramework caches.
  • React Native Runtimes: we’ve teamed with Margelo to introduce a multi-runtime layer for React Native New Architecture apps. It lets you run selected components, screens, headless tasks, and business logic in isolated Hermes runtimes, so expensive work does not block navigation, gestures, or input on the main JS thread. Like Lynx, but without rewriting your app.
  • React Native Gesture Handler 3.0: A major New Architecture-only release of Gesture Handler with a new hook-based API, a new Touchable component, and deeper Reanimated integration. It is another sign that core interaction libraries are moving their best APIs to the New Architecture path.
  • Talking to JSI in Swift: what changed in SDK 56: Expo native modules now call JSI directly on Apple platforms in SDK 56, removing the Objective-C++ bridge layer and making calls 1.6-2.3x faster. Good news for everyone! Hard to imagine a project without Expo Modules today.
  • React Native Testing Library 14.0: RNTL 14 aligns testing with React 19 and replaces the deprecated React Test Renderer with the new Test Renderer compatibility line. The release also makes core rendering and event APIs async by default, with codemods available for the most common migration work.
  • N-API v10 support landed in Hermes trunk: Native Node-API addons can now run on Hermes without modification, though the work is still experimental. If it matures, this could make more of the Node-native ecosystem available inside React Native without custom mobile rewrites. This is the culmination of years of efforts from Microsoft and community enthusiasts, like Jamie and Kraen. Congrats guys!

Callstack Incubator highlights

Voltra

Szymon is working on a new rendering engine for Voltra, which allows for dynamic UI changes without foregrounding the app. Helpful when a user changes the dimensions of the widget to see the up-to-date UI. There’s some cool engineering going under the hood to make it happen, look out for a blog post on it soon.

And speaking of Voltra, the same idea applied to watchOS equals React for watchOS. It requires building a custom Hermes target, but fits nicely on such a small device, with this demo occupying only 17 MB of memory and app bundle as small as 6.7 MB. After releasing this, we also learned there’s an existing react-native-watchos project doing exactly the same. We’ll see whether there’s some space for collaboration. It was a fun weekend experiment nonetheless!

Apex

A month ago we released Apex, Callstack’s own large language model that’s fine-tuned for React Native development. We opened the waitlist and have received over 500 submissions so far. We’re constantly processing the list and contacting the companies that want to be early testers. So far, we have over 100 active users, processed over 20k requests, for a total of 1.5 billion tokens.

Agent Device

The project proved to be useful and we decided it’s time to mature from incubation to a stable project, so we moved it under Callstack’s GitHub org. A big milestone for this project, which still has so much more to offer. We’re also at nearly 3k stars on GitHub (star if you haven’t already!) and 128k weekly downloads. Thank you for using it 🫶!

I’ve concluded my “Maestro support” experiment and it turned out that with the agent-device test command you can replace maestro run and expect around 2x faster runs on Android on a powerful machine and about the same perf for iOS. Interestingly, both platforms are faster on GitHub Actions CI, usually between 1.1 and 1.5x. We support most of Maestro’s script and CLI syntax, so feel free to try it and let me know if it works and how much faster (or slower 🙈) it runs for your app.

After months of keeping it closed source and forgetting about it, I’ve decided to ship the proxy command (most of it was open source anyway, lol). It’s the simplest way to convert your Mac or Linux machine into a private, self-hosted device cloud / farm.

Run this command, expose the server through cloudflared or ngrok or anyhow and connect any agent running anywhere through agent-device connect by passing a secure token that the proxy server generated for you. And just like that, you can can do your mobile dev from a phone, Claude Tag or Vercel Sandbox. Give it a go.

We’ve also heard you like giving agents access to agent-device to profile, diagnose and fix performance issues cheaply and fast without hiring Callstack. And we love this! Give us more examples of how you use agent-device. My DMs are open.

React Navigation

Satya is working tirelessly on React Navigation 8 (coming as soon as React Native Screens 5 becomes stable!), introducing much better type safety for both static and dynamic APIs.

When you’re using React Navigation's static config (recommended), you’ll be able to use automatic shared URLs for mobile and web. If the same screen appears in multiple navigators with the same path pattern, it'll be marked as shared automatically. So the screen keeps one URL, even when it lives in different navigators.

And as a bonus, you get nicer SFSymbol (iOS) transitions when the icon changes.

React Native Bottom Tabs

Thiago got on the iOS 27 train very quickly after WWDC 2026 and implemented some new APIs in React Native Bottom Tabs, somehow getting by with the new Device Hub (for me, after using it for 3 days I gave up and got back to the regular simulator).

React Native Brownfield

As React Native experiments with SPM support, we’ve added just that for the React Native Brownfield library as well. Along with many other fixes and updates, such as MAUI support (yup), opt-in iOS Debug mode for loading the embedded JavaScript bundle, or faster compilation.

Local LLMs

Lech is experimenting with a fully Agentic Operating System that fits on custom handheld hardware he also designed, running a local LLM to control the OS and UI. He’ll be presenting it at the AI Engineer World’s Fair.

And Artur teamed up with our new friends at Hugging Face to run the SmolLM2-135M model through ONNX runtime and transformers.js on iPhone 16 to achieve 15 tokens/s. Not too shabby, especially since a few months ago we weren’t able to run LLMs through ONNX. Thank you Joshua!

Core React Native contributions

ArrayBuffer in TurboModules got unblocked recently! Kamil landed C++, Objective-C++, and Java Pull Requests that unlock some sweet performance improvements not only for custom TurboModules, but also built-in ones like Blob, FileReader or fetch, which currently rely on base64.

Hur is working on Android Gradle Plugin 9 and 10 adoption for broader React Native ecosystem.

There are 20 open PRs from Callstack developers right now, hope we can close some of them soon!

Blog

  • How Expensify Uses Agent-Device for Mobile Bug Evidence and Profiling by Kacper Mikołajczak and Bartłomiej Obudziński: This article shows how we use agent-device with the Expensify app across three everyday mobile workflows: verifying bug fixes with recorded before/after evidence, measuring Sentry performance spans, and profiling React renders.
  • Writing Custom Renderers for React by Maciej Jastrzębski: React Test Renderer’s deprecation forced React Native Testing Library to find a long-term replacement. In this article, Maciej Jastrzębski explains what it took to build a new JavaScript-only test renderer for RNTL and uses that process to show how React renderers actually work. It’s a practical look at React elements, Fiber, host instances, HostConfig, and React Reconciler for anyone who wants a clearer mental model of how JSX becomes UI.
  • Building Mobile QA Agents With Vercel Eve by Michał Pierzchała: This article walks through migrating a mobile QA agent from a single AI SDK tool loop to Vercel Eve. It shows how Eve’s filesystem-first structure, typed tools, and durable sessions make agent behavior easier to inspect, review, and maintain inside EAS Workflows.
  • How We Made the Brownfield Gradle Plugin 22% Faster by Hur Ali: Build performance rarely comes from one big change. This article explains how we improved the Brownfield Gradle Plugin by moving work out of Gradle’s configuration phase, introducing a task-driven pipeline, and making artifact processing more variant-aware.
  • Why Banking App Modernization Stalls Before It Ships by Łukasz Chludziński: This article looks at why banking app modernization often slows down after the strategy is set. We cover the delivery problems that show up as apps grow, from release coordination and testing to observability and cross-team ownership. We also explain why architecture alone does not solve them and what a shared platform function can do to help banks ship faster without losing control.
  • AI-Assisted React Native Migration for TV: Lessons From Zattoo by Łukasz Chludziński: Zattoo started its React Native TV migration before today’s AI-assisted workflows became common. Their story shows where AI can now support similar migrations, from onboarding and refactoring to testing and platform-specific implementation work.
  • 5 Lessons From Vibe Coding Before You Ship with AI by Hristo Totov: AI agents can turn an app idea into working code in hours. They can also overbuild simple features, miss your architecture, and quietly run up cost. In this article, Hristo Totov breaks down five practical lessons for using AI agents with better prompts, better feedback loops, and better engineering judgment.
  • On-device AI after WWDC 2026: What's new? by Mike Grabowski: Apple’s 2026 AI updates move Apple Intelligence beyond a narrow text model. Foundation Models gets image input and server-backed calls, high-end devices get a stronger on-device model, and Core AI gives custom local models a native path. We’re mapping these APIs into the React Native AI stack and working with early users on real app workflows.
  • Optimizing Self-Hosted Gemma for Production Inference by Piotr Miłkowski: We optimized self-hosted Gemma 4 31B for Apex by tuning vLLM server configuration, GPU memory use, KV cache capacity, context length, multimodal limits, tensor parallelism, and MTP speculative decoding. The article covers what changed, the performance gains we measured, the latency tradeoffs, and the production setup we recommend for faster Gemma serving.
  • AI-Supported Brownfield Migration to React Native by Hur Ali: Brownfield migration is rarely slowed by the rewrite itself. The real cost sits in setup, requirements capture, native integration, and validation. This article shows how an AI-supported workflow reduces that work from weeks to days while keeping engineering review in the loop.

Podcast, videos, and talks

Events

Agent Conf Updates

Agent Conf is coming to Warsaw on September 17-18, and the venue is now set: Crowne Plaza Warsaw - The HUB. We partnered with Crowne Plaza and Holiday Inn to offer attendee hotel rates, so feel free to check them out and take advantage of the offer: https://www.agent.sh/#location.

Early Bird tickets are almost sold out and new speakers are coming soon! Keep up with all the conference updates on X or LinkedIn.

Chain React

We’re heading to Chain React at the end of July. It’s one of the main U.S. React Native conferences, organized by Infinite Red and focused fully on React Native, with speakers and attendees from across the ecosystem.

If you’ll be there on July 30-31, come find the Callstack team and say hi.

That’s it for the June edition. We’ll be back next month with more updates, experiments, and lessons from the field. See you then.

Michał

Stay on top of the React & React Native ecosystem

Subscribe to our newsletter to get insights for developers, tech leads, and enthusiasts into what’s happening and what we’re building.

Link copied to clipboard!
Insights

Your next read or watch starts here

Stay up to date with our latest insights on React, React Native, and cross-platform development from the people who build the technology and scale with it daily.