YuSMP Group logo
YuSMP Group Editorial Team Editorial team, YuSMP Group
Isometric illustration of translucent app window layers stacking onto an opened smartphone on a workbench, with a ripple wave passing through the layers and two slider controls beside them

The short version

React Native 0.88 is the release that makes cross-platform apps ready for Apple's iOS 27 SDK: it adds UIScene and SceneDelegate support, without which apps built in Xcode 27 fail to launch. The upgrade from 0.87 needs no app-code changes, so teams planning React Native development work for 2027 should schedule the iOS life-cycle migration now rather than in the spring rush.

What is new in React Native 0.88?

The release, written up by engineers from Meta and Expo, bundles five headline changes. Event dispatching now runs through the W3C EventTarget API by default. <Text> and <TextInput> accept fontVariationSettings on Android and iOS, in either CSS string or object form, so one variable font file can replace several static weights. iOS gains SceneDelegate support. Java TurboModules can take and return JavaScript ArrayBuffer values directly, which removes Base64 round-trips for binary data such as images, audio or crypto payloads. And the experimental Swift Package Manager tooling has been hardened.

Under the hood, the release moves to React 19.3.0, Metro 0.87 (minimum 0.87.1) and a new Hermes build. Background styles such as backgroundSize and backgroundPosition are now stable without the experimental_ prefix, iOS right-to-left text aligns right by default, and the default Android User-Agent now carries the app name and version. The team says it is the third release, after 0.83 and 0.86, with no user-facing breaking changes.

Why does SceneDelegate matter for iOS 27?

Apple has warned since WWDC 2025 that the release after iOS 26 would require the UIScene life cycle. With the iOS 27 SDK that is now enforced: an app linked against the SDK that only implements the older UIApplicationDelegate window life cycle is refused at launch with the error "UIScene life cycle is required for apps built with this SDK." The requirement follows the SDK, not the device: the same app built with Xcode 26 still runs on iOS 27, but the day a team moves its build pipeline to Xcode 27, it has to migrate.

React Native 0.88 adds two new entry points, startReactNativeWithModuleName:inWindow:connectionOptions: and a variant with initial properties, so the React Native root view can be created from a scene delegate. The existing AppDelegate path keeps working, and only a single scene is supported for now, so UIApplicationSupportsMultipleScenes should stay false. For managed projects, Expo SDK 58 already generates SceneDelegate.swift and the scene manifest during prebuild.

Apple usually makes the newest SDK mandatory for App Store uploads in the spring after a major iOS release. It has not announced the date for iOS 27 yet, but a team that still runs a pre-0.88 React Native version when that rule lands will face an upgrade and a life-cycle migration at the same time.

What changes with web-based event dispatching?

Until now the renderer relied on a plugin-based event system inherited from React Native's early days. In 0.88, events travel through a real capture path and bubble up the tree the way they do in a browser, and addEventListener, removeEventListener and dispatchEvent are available on host components in the Canary channel. For teams that share code or mental models between React web apps and mobile, this narrows a long-standing gap.

The legacy system remains in 0.88 but is planned for removal. Apps whose behavior depends on custom gesture handling, nested touchables or third-party libraries that hook into the old dispatcher should test touch flows on this release, while the fallback still exists.

Which versions and tools are affected?

ItemStatus after 0.88
React Native 0.88Current stable (October 19, 2026)
React Native 0.85.xOut of support
Expo SDK 58Ships React Native 0.88, built for iOS 27 (October 15, 2026)
Swift Package ManagerExperimental and opt-in in 0.88; planned as default in 0.89 with CocoaPods opt-out
CocoaPodsFully supported for now; removal planned in a future release
DeprecatedInitializeCore import path, iOS InputAccessoryView, experimental_ background style props

What it means for US & EU software teams

For product owners the headline is planning, not features. The iOS 27 requirement turns what used to be an optional React Native upgrade into a dated dependency for every app that ships to the App Store. Apps stuck several versions behind, typically after an agency handover or a frozen budget, now carry a clear risk: the first build in Xcode 27 will not launch until both the framework and the native iOS shell are updated.

The non-breaking streak lowers the cost of staying current. Teams that upgrade every release, from 0.86 to 0.87 to 0.88, mostly touch native project files and dependencies; teams jumping from 0.8x versions out of support face deprecations, library compatibility checks and the scene migration at once. Brownfield apps, where React Native screens live inside an existing native iOS app, need extra care, because the host app's own delegate code also has to move to the scene life cycle.

The Swift Package Manager roadmap is the second item for 2027 budgets. With SPM set to become the default in 0.89 and CocoaPods support slated for removal later, CI pipelines, private native modules and build caches will need rework. Folding that into the same iOS 27 upgrade window avoids paying for two rounds of native build changes.

Upgrade checklist for React Native teams

  1. Check your version. If production runs 0.85 or older, plan the jump to 0.88 now; 0.85.x is no longer supported.
  2. Migrate to SceneDelegate. Move window creation into a scene delegate, add the scene manifest to Info.plist and keep multiple scenes disabled.
  3. Build once with Xcode 27. Run a test build against the iOS 27 SDK to confirm the app launches before the App Store deadline is announced.
  4. Regression-test touch flows. Verify gestures, nested touchables and libraries that hook into events under the new dispatcher.
  5. Clear deprecations. Replace InitializeCore imports, InputAccessoryView and prefixed background styles.
  6. Trial Swift Package Manager. Opt in on a branch to see which native dependencies and CI steps break before it becomes the default.

Frequently asked questions

When was React Native 0.88 released and what are its main features?

React Native 0.88 was released on October 19, 2026. Its main features are web-based event dispatching through the W3C EventTarget API, variable font support via fontVariationSettings on Text and TextInput, SceneDelegate (UIScene life cycle) support on iOS, ArrayBuffer support for Java TurboModules and hardened experimental Swift Package Manager tooling. It bundles React 19.3.0 and Metro 0.87.

Do iOS apps have to adopt SceneDelegate for iOS 27?

Yes, if they are built with the iOS 27 SDK in Xcode 27. Apple requires apps linked against that SDK to use the UIScene life cycle; apps that only use the UIApplicationDelegate window life cycle fail to launch. The requirement is tied to the SDK, not the OS: an app built with Xcode 26 still runs on iOS 27.

Does upgrading to React Native 0.88 break existing code?

The React Native team says 0.88 has no user-facing breaking changes, the third such release after 0.83 and 0.86. It does deprecate several APIs, including the InitializeCore import path, the iOS InputAccessoryView component and the experimental_ prefixed background style props, and the legacy plugin-based event system is planned for removal in a later version.

Which React Native versions are still supported after 0.88?

With 0.88 stable, React Native 0.85.x has moved out of support. Expo SDK 58, published on October 15, 2026, ships React Native 0.88 and is built for iOS 27.

Sources

React Native Blog — React Native 0.88: Web-Based Event Dispatching, Variable Fonts, SceneDelegate, no breaking changes (October 19, 2026)
Expo Changelog — Expo SDK 58 (October 15, 2026)
AlternativeTo News — React Native 0.88 brings web-based event dispatching & variable fonts; no breaking changes (October 19, 2026)
Apple Developer — TN3187: Migrating to the UIKit scene-based life cycle