<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/web-based-event-dispatching-variable-fonts-scenedelegate-no-breaking-changes-react-native-zqhronpiv" -->

---
title: Web-Based Event Dispatching, Variable Fonts,...
description: React Native 0.88 ships with no user-facing breaking changes, the third such release in a row. Key highlights include switching event dispatching to a...
canonical: https://daily.dev/posts/web-based-event-dispatching-variable-fonts-scenedelegate-no-breaking-changes-react-native-zqhronpiv
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Web-Based Event Dispatching, Variable Fonts, SceneDelegate, no breaking changes · React Native | daily.dev
og:description: React Native 0.88 ships with no user-facing breaking changes, the third such release in a row. Key highlights include switching event dispatching to a...
og:url: https://daily.dev/posts/web-based-event-dispatching-variable-fonts-scenedelegate-no-breaking-changes-react-native-zqhronpiv
og:image: https://api.daily.dev/og/posts/zQhronPiv.png
og:image:alt: Web-Based Event Dispatching, Variable Fonts, SceneDelegate, no breaking changes · React Native
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Web-Based Event Dispatching, Variable Fonts, SceneDelegate, no breaking changes · React Native

**[React Native](https://daily.dev/sources/react_native)** · 10 min read · 48 upvotes · 1 comments

## Summary

React Native 0.88 ships with no user-facing breaking changes, the third such release in a row. Key highlights include switching event dispatching to a Web-based EventTarget model by default, variable font support via fontVariationSettings on Text and TextInput for both platforms, SceneDelegate lifecycle support on iOS (needed ahead of Apple's iOS 27 SDK requirement), ArrayBuffer support for Java TurboModules, and experimental Swift Package Manager hardening with CocoaPods eventually being phased out. React is bumped to 19.3.0 and Metro to 0.87, alongside various deprecations, bug fixes, and rendering/layout improvements across iOS and Android.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://reactnative.dev/blog/2026/10/19/react-native-0.88>

## Questions this post answers

### Why do my UIKit React Native apps need SceneDelegate support now on iOS?

Starting with the iOS 27 SDK, Apple requires the UIScene lifecycle, and UIKit apps built with Xcode 27 will fail to launch without it. React Native 0.88 adds SceneDelegate entry points via RCTReactNativeFactory as an additive change, keeping AppDelegate backward compatible, though support is limited to a single scene in this release.

_Track lifecycle changes like these on daily.dev before an Xcode upgrade breaks your build._

### How does React Native 0.88 change event dispatching compared to earlier versions?

React Native 0.88 switches to dispatching events by default through the W3C EventTarget API, replacing the plugin-based system used since the renderer's early days. This gives real capture-and-bubble propagation matching web semantics, and exposes addEventListener, removeEventListener, and dispatchEvent on native refs in Canary builds, unblocked by the React 19.3.0 bump.

_Developers migrating event-handling code can follow coverage like this on daily.dev._

### Can Java TurboModules in React Native pass binary data without converting it to strings or number arrays?

Yes, as of React Native 0.88, Java TurboModules can take and return JavaScript ArrayBuffer values directly, with Codegen mapping them to com.facebook.react.bridge.ArrayBuffer. Synchronous methods can borrow JavaScript memory to avoid copies, but those borrowed bytes are only valid until the method returns and must be copied if retained.

_Developers building native modules can keep up with API changes like this via daily.dev._

## Community discussion

Top comments from developers on daily.dev.

**@pdfopsdev** · 0 upvotes

> switching default event dispatching to EventTarget is going to quietly break anyone relying on synthetic event pooling behavior from the old system, worth grepping your codebase for manual event.persist() calls before bumping to 0.88.

## Similar posts on daily.dev

- [Variable font, Activity Result, Lynx, Lucent, macOS, Plain Text, Navigation, Angular Native, Re.Pack](https://daily.dev/posts/variable-font-activity-result-lynx-lucent-macos-plain-text-navigation-angular-native-re-pack-8yudatcxd) · This Week In React · 1 upvotes · 0 comments
- [React 19.2, New DevTools features, no breaking changes · React Native](https://daily.dev/posts/react-19-2-new-devtools-features-no-breaking-changes-react-native-0d1dqgcc6) · React Native · 69 upvotes · 1 comments
- [React Native solves some real problems](https://daily.dev/posts/react-native-solves-some-real-problems-bagnpeani) · Bytes by ui.dev · 2 upvotes · 0 comments

---

Tags: [#javascript](https://daily.dev/tags/javascript), [#react](https://daily.dev/tags/react), [#mobile](https://daily.dev/tags/mobile), [#ios](https://daily.dev/tags/ios), [#react-native](https://daily.dev/tags/react-native)

[View this post on daily.dev](https://daily.dev/posts/web-based-event-dispatching-variable-fonts-scenedelegate-no-breaking-changes-react-native-zqhronpiv)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Web-Based Event Dispatching, Variable Fonts, SceneDelegate, no breaking changes · React Native","url":"https://daily.dev/posts/web-based-event-dispatching-variable-fonts-scenedelegate-no-breaking-changes-react-native-zqhronpiv","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/web-based-event-dispatching-variable-fonts-scenedelegate-no-breaking-changes-react-native-zqhronpiv"},"datePublished":"2026-10-18T00:01:49.902Z","dateModified":"2026-10-18T00:02:18.963Z","description":"React Native 0.88 ships with no user-facing breaking changes, the third such release in a row. Key highlights include switching event dispatching to a...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/ef223cf76396449f77ab357128a21e16?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/ef223cf76396449f77ab357128a21e16?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"React Native","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"React Native","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/react_native","url":"https://daily.dev/sources/react_native"},"commentCount":1,"discussionUrl":"https://daily.dev/posts/web-based-event-dispatching-variable-fonts-scenedelegate-no-breaking-changes-react-native-zqhronpiv","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":47},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":1}],"keywords":"javascript,react,mobile,ios,react-native","timeRequired":"PT10M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"React Native","item":"https://daily.dev/sources/react_native"},{"@type":"ListItem","position":3,"name":"Web-Based Event Dispatching, Variable Fonts, SceneDelegate, no breaking changes · React Native"}]}
{"@context":"https://schema.org","@type":"WebPage","@id":"https://daily.dev/posts/web-based-event-dispatching-variable-fonts-scenedelegate-no-breaking-changes-react-native-zqhronpiv","comment":[{"@type":"Comment","text":"switching default event dispatching to EventTarget is going to quietly break anyone relying on synthetic event pooling behavior from the old system, worth grepping your codebase for manual event.persist() calls before bumping to 0.88.","datePublished":"2026-10-18T18:19:07.350Z","url":"https://daily.dev/posts/zQhronPiv#c-kIKdAOP48","author":{"@type":"Person","name":"PDFops","url":"https://daily.dev/pdfopsdev","image":"https://media.daily.dev/image/upload/s---8isRBKc--/f_auto/v1782922291/avatars/avatar_orjMeK8QKaaVZwGq7ScPz?_a=BAMAMicg0"}}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/web-based-event-dispatching-variable-fonts-scenedelegate-no-breaking-changes-react-native-zqhronpiv#faq","mainEntity":[{"@type":"Question","name":"Why do my UIKit React Native apps need SceneDelegate support now on iOS?","acceptedAnswer":{"@type":"Answer","text":"Starting with the iOS 27 SDK, Apple requires the UIScene lifecycle, and UIKit apps built with Xcode 27 will fail to launch without it. React Native 0.88 adds SceneDelegate entry points via RCTReactNativeFactory as an additive change, keeping AppDelegate backward compatible, though support is limited to a single scene in this release. Track lifecycle changes like these on daily.dev before an Xcode upgrade breaks your build."}},{"@type":"Question","name":"How does React Native 0.88 change event dispatching compared to earlier versions?","acceptedAnswer":{"@type":"Answer","text":"React Native 0.88 switches to dispatching events by default through the W3C EventTarget API, replacing the plugin-based system used since the renderer's early days. This gives real capture-and-bubble propagation matching web semantics, and exposes addEventListener, removeEventListener, and dispatchEvent on native refs in Canary builds, unblocked by the React 19.3.0 bump. Developers migrating event-handling code can follow coverage like this on daily.dev."}},{"@type":"Question","name":"Can Java TurboModules in React Native pass binary data without converting it to strings or number arrays?","acceptedAnswer":{"@type":"Answer","text":"Yes, as of React Native 0.88, Java TurboModules can take and return JavaScript ArrayBuffer values directly, with Codegen mapping them to com.facebook.react.bridge.ArrayBuffer. Synchronous methods can borrow JavaScript memory to avoid copies, but those borrowed bytes are only valid until the method returns and must be copied if retained. Developers building native modules can keep up with API changes like this via daily.dev."}}]}
```

