Expo SDK 58 Beta: What It Means for React Native Apps Built on NativeKit Templates

By Rafat Saqqa · 5 min read

Expo SDK 58 beta is here with React Native 0.88, iOS 27 support, faster native module calls, and a reworked Expo Router. Here's what actually matters if you're building on a NativeKit Studio template.

Expo just opened the beta for SDK 58, and it's a bigger release than usual — built for iOS 27, running on React Native 0.88 (release candidate), with real performance work under the hood. Here's what's worth knowing before you upgrade a NativeKit Studio template.

Built for iOS 27

iOS 27 forces every app onto Apple's scene-based life cycle and makes iPhone apps resizable by default. Expo apps now adopt this automatically — npx expo prebuild generates the SceneDelegate.swift and manifest entries for you. If you've customized AppDelegate.swift in a NativeKit template, check the scene life cycle migration guide before upgrading, since app delegate callbacks are now delivered differently.

Faster native module calls, with nothing to change

SDK 58 continues the performance push from SDK 56: iOS calls that pass simple values are cheaper, long strings move up to 3.8× faster, and promises cost less to create. You get this for free just by updating — no code changes required, and it benefits every Expo module your template depends on.

On the build side, expo-modules-core now ships precompiled native libraries for Android, cutting a clean debug build roughly in half (about 80s → 39s in Expo's own testing). That adds up fast in CI.

Expo Router goes stable

Data loaders, server-side rendering, and middleware are no longer experimental. Native tabs and toolbars are stable too. The router's navigation core was also reworked for more deterministic state — most apps won't notice, but if a template uses a custom navigator or imports from expo-router/react-navigation, read the migration guide first since some APIs moved.

React Native 0.88 under the hood

This pulls in changes from both RN 0.87 and the 0.88 release candidate:

  • Experimental Swift Package Manager support as an alternative to CocoaPods (CocoaPods stays the default)
  • ArrayBuffer support in TurboModules on both platforms
  • The Strict TypeScript API is now the default — deep imports from react-native/Libraries/* become type errors, and ref types change shape. Plan time for this if you maintain custom native code in a template.

Should you upgrade a NativeKit template now?

SDK 58 is still in beta (3–4 week beta period, started mid-September 2026), and React Native 0.88 itself hasn't shipped stable yet. For anything heading to production, we'd hold on SDK 57 until the stable release lands. If you want to test iOS 27 support early or kick the tires on the performance improvements, it's a solid beta to try in a side branch.

We'll follow up with template-specific upgrade notes once SDK 58 goes stable.

Source: Expo SDK 58 Beta changelog

React Native app templates you can start from today