2026-05-25 · #30
React Native Weekly #30 Expo SDK 56, React Navigation retain API, OpenMLS Nitro Encryption and more
Expo SDK 56 Released: iOS Builds 16% Faster, Android Cold Start 40% Improved#
Expo SDK 56 has officially launched, bringing a 16% speed improvement to iOS builds (with an additional 20% on EAS through precompilation of community libraries), and a 40% improvement to Android cold start times.
SwiftUI and Jetpack Compose support has reached Stable, and you can now write inline native modules in Swift or Kotlin.
Expo SDK 56 is out 🙌 ◆ Expo UI is stable on iOS and Android ◆ iOS builds 16% faster, plus another 20% on EAS from precompiled community libs ◆ Android cold starts 40% faster ◆ Expo Router decoupled from React Navigation ◆ Inline native modules: write Swift and Kotlin
Expo Modules Get Even Faster in SDK 56#
Expo Modules have been announced to deliver further performance improvements in SDK 56.
Benchmark comparisons against Turbo Modules have also been published, along with documentation on how to choose between Expo Modules and Turbo Modules — or use both together.
😅 Expo Modules got faster again this SDK. You can see how performance compares to Turbo Modules in the benchmarks below. Then check out our docs to learn more about when/why to choose Expo Modules and/or Turbo Modules. docs.expo.dev/modules/overview…
Android Codegen Up to 2.8x Faster with New Option#
Enabling android.usePrecompiledHeaders: true in Expo SDK 56 speeds up Android Codegen compilation by up to 2.8x.
There are also plans being considered to upstream this change to React Native itself.
Shipped a last-minute Expo SDK 56 feature: up to 2.8x faster codegen compilation on Android. Enable it with `android.usePrecompiledHeaders: true` in expo-build-properties. Next, I'll try upstreaming this to React Native so everyone benefits from faster builds.
On-Demand Filesystem Now Available in Expo SDK 56#
An on-demand filesystem is now available in Expo SDK 56.
This brings a global virtual store mechanism similar to Bun or pnpm to Expo, eliminating duplicate node_modules and promising faster installs and reduced disk usage.
If you’ve been running multiple branches in parallel with Git Worktree, you’ve probably watched your SSD fill up fast — so this is a very welcome update.
Expo SDK 56でオンデマンドファイルシステムが利用できるようになったらしい。 これによって、Bunやpnpmのようなグローバル仮想ストアがExpoで利用できるようになって、node_modulesの重複などがなくなってインストールの高速化やディスク使用量を減らせる。 Git
Demo Comparing useNativeState and useState on iOS/Android#
A demo has been published comparing the useNativeState hook against useState, showing that while the performance difference on Android is minimal, there is a significant gap on iOS.
The source code has also been made available.
Since everyone is asking about Android, here's a demo using plain useState versus the useNativeState hook. TBH I don't really see a difference on Android, but on iOS useNativeState makes a huge difference. source code below 👇 twitter.com/betomoedano/status…
Callstack Improves Sandbox Safety with turboModuleSubstitutions#
React Native’s JS sandbox has a problem where, even with its own JS runtime, it can leak through shared native resources.
Callstack has published a turboModuleSubstitutions mechanism that allows swapping in safe Turbo Modules for sandboxed environments — replacing file access, storage, and more with secure implementations, without modifying the sandbox’s JS code.
A React Native sandbox can have its own JS runtime and still leak through shared native resources. We wrote about how turboModuleSubstitutions fixes that by swapping in sandbox-safe TurboModules for files, storage, and more, without changing sandbox JS. Check it out👇 Link below
Keep Background Screens Alive with React Navigation 8’s retain API#
The retain API added in React Navigation 8 allows stack screens to remain rendered and active in the background even after navigating back.
This makes it possible to implement things like moving a video to picture-in-picture and continuing playback.
The new retain API in React Navigation 8 keeps stack screens rendered and active in the background even after going back. So you can do things like move a video to picture-in-picture so it keeps playing.
agent-device v0.15 Is 1.5x Faster Than Maestro on iOS#
agent-device v0.15 has been released, running 3.4x faster than the baseline and 1.5x faster than Maestro on iOS.
A compatibility layer with Maestro has also been added.
agent-device v0.15 is out. faster than ever on iOS ⚡
working on a faster boot, interactions, and test replay for agent-device. so far: → 3.4x faster than baseline → 1.5x faster than Maestro (yes, we're adding compatibility layer) shipping this in v0.15 once tested better
Margelo Releases Agent Skills for React Native#
Margelo has officially released Agent Skills for React Native development.
The package includes guides for writing efficient Nitro Modules, GPU-accelerated VisionCamera code, and correct usage of react-native-mmkvs — all aimed at helping AI agents write production-quality code.
We're finally publishing our #reactnative agent skills 🥳 Whether it's efficient Nitro Modules syntax, properly GPU-accelerated VisionCamera code or react-native-mmkv usage - the agent skills make sure you're not shipping AI slop to production - try them today:
OpenMLS + Rust + Nitro Modules Achieves ~0.87ms MLS Group Chat Encryption#
Combining OpenMLS, Rust, and Nitro Modules in React Native has achieved an MLS group chat encryption speed of approximately 0.87ms.
Native encryption performance is delivered via zero-copy JSI.
People asked if MLS group chats would still be fast in React Native? ~0.87ms encryption. OpenMLS + Rust + Nitro Modules. Zero-copy JSI. Native crypto performance. Full dive next Tuesday 18:00 (CET) blog.margelo.com twitter.com/adnansahinovich/st…
react-native-executorch v0.9.0 Coming Soon#
Software Mansion has teased an upcoming release of v0.9.0 of react-native-executorch, a library for running on-device AI inference in React Native.
On-device AI performance has been steadily improving with each release, and the next version is generating a lot of anticipation.
On-device AI keeps getting better! 💪🏻 React Native ExecuTorch v0.9.0 coming very soon. twitter.com/igor_swat66626/sta…
Chromatic Announces Beta Support for React Native Visual Testing#
Chromatic has announced beta support for visual testing of React Native apps.
When you push a change, Chromatic automatically captures the native UI after real-device rendering and lets you review visual diffs directly in your PR.
📱Announcing beta Chromatic support for visually testing React Native apps! If you already use Chromatic, this workflow should feel familiar: Push a change → Chromatic captures rendered native UI → visual regressions show directly in your PR. 🔍✨ (1/3)
hermes-node Released as Open Source#
hermes-node, which runs Hermes — React Native’s JS engine — in a Node.js environment, has been released as open source.
According to the author it’s “surprisingly usable,” though it is not considered stable.
I am making hermes-node public. It is surprisingly usable. Not considered stable or anything. Link in next Tweet.
Haptic Feedback Increases Add-to-Cart by Up to 18%#
According to a Software Mansion article, adding haptic feedback to a checkout flow can increase add-to-cart actions by up to 18%.
Adding haptics to a checkout flow can increase items added to cart by up to 18%. And it's only one of many ways it impacts your business. 👀 @piaskowyk wrote about what haptic feedback means for your app 👉 swmansion.com/blog/how-haptic-…
Uniwind Pro Enables Global Styling for Native Components#
A new release of Uniwind Pro allows you to globally target native components just like on the web.
By writing selectors like View or Text, you can apply design system defaults — font size, font family, padding, spacing, layout, and more — across your entire app.
This is one of the best Uniwind Pro releases yet. 👉🏼 You can now target native components globally, just like on the web 👉🏼 Write selectors like View and Text, then apply your design system defaults across the app 👉🏼 font size, font family, padding, spacing, layout, whatever
react-native-enriched v0.7.0 Brings Rich Text Input#
Software Mansion has released react-native-enriched v0.7.0, introducing the EnrichedTextInput component for native rich text input — including bold, italic, lists, links, headings, and checkboxes.
Software Mansion just shipped 𝗿𝗲𝗮𝗰𝘁-𝗻𝗮𝘁𝗶𝘃𝗲-𝗲𝗻𝗿𝗶𝗰𝗵𝗲𝗱 𝘃𝟬.𝟳.𝟬, and it closes a loop the library has been working toward for a while. 𝗘𝗻𝗿𝗶𝗰𝗵𝗲𝗱𝗧𝗲𝘅𝘁𝗜𝗻𝗽𝘂𝘁 lets users write rich text natively (bold, italics, lists, links, headings, checkboxes,
LegendList 3.0 Ready to Ship#
LegendList 3.0 has been announced as ready to release.
It has been verified working in production on both React and React Native, and open issues have been triaged with stale PRs closed.
LegendList is looking ready for a 3.0 release 🎉 It's working well in production in both React and React Native. I caught up on most open issues, closed stale PRs, and merged a few great contributions ❤️. Does anyone know of anything that should be fixed before I ship 3.0?
One More Thing#
My personal highlight this week is Expo SDK 56’s support for global virtual stores with Bun and pnpm.
I’ve been doing a lot of parallel branch development with Git Worktree in React Native lately, and node_modules has been eating up gigabytes of disk space — this should finally put an end to that headache.
Beyond that, Expo SDK 56 is packed with all kinds of improvements, and it feels pretty solid overall. I’m planning to start upgrading a few projects this week!






