Conversation
|
Coverage Impact This PR will not change total coverage. 🚦 See full report on Qlty Cloud »🛟 Help
|
There was a problem hiding this comment.
Pull request overview
Updates the SDK and included example app tooling to React Native 0.84.1 (and React 19.2.3), along with the associated CLI/Metro/Babel/TypeScript config ecosystem changes needed for that upgrade.
Changes:
- Bump React / React Native and React Native toolchain dependencies (CLI, Metro config, Babel preset, TS config) to the 0.84.1 line.
- Adjust the TurboModule spec typings in
NativeRNIterableAPI.tsto match updated RN codegen expectations (e.g.,Array<T>usage andObjectfor config). - Update example iOS project configuration and Info.plist (device/orientation/build settings), plus Node version expectations (
.nvmrc, example engines).
Reviewed changes
Copilot reviewed 7 out of 8 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
yarn.lock |
Regenerated lockfile reflecting RN 0.84.1 / React 19.2.3 dependency graph changes. |
src/api/NativeRNIterableAPI.ts |
Updates TurboModule spec type shapes (arrays/object param) for RN 0.84 codegen compatibility. |
package.json |
Bumps devDependencies to RN 0.84.1 toolchain and React/RN versions. |
example/package.json |
Aligns example app dependencies and sets a newer Node engine requirement. |
example/ios/ReactNativeSdkExample/Info.plist |
Adds iPad-specific orientation key and adjusts supported orientations. |
example/ios/ReactNativeSdkExample.xcodeproj/project.pbxproj |
Updates CocoaPods build phase references and adds/adjusts build settings for the RN upgrade. |
example/android/app/build.gradle |
Updates comments to reflect current RN gradle plugin defaults/variants. |
.nvmrc |
Updates the repo’s Node version target to v22.14.0. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| "-DFOLLY_CFG_NO_COROUTINES=1", | ||
| "-DFOLLY_HAVE_CLOCK_GETTIME=1", | ||
| "-DRCT_REMOVE_LEGACY_ARCH=1", |
| "-DFOLLY_CFG_NO_COROUTINES=1", | ||
| "-DFOLLY_HAVE_CLOCK_GETTIME=1", | ||
| "-DRCT_REMOVE_LEGACY_ARCH=1", |
There was a problem hiding this comment.
Approved. Clean smoke test on this branch — root + example yarn install, bundle exec pod install, iOS xcodebuild, ./gradlew :app:assembleDebug (~3m 9s, 189 tasks), yarn build/typecheck/lint/test (476).
Nit AGP: android/build.gradle:12 and example/android/build.gradle:15 pin 8.7.2. @react-native/gradle-plugin@0.84.1 declares agp = "8.12.0" in gradle/libs.versions.toml; the official RN 0.84.1 template leaves the classpath unversioned and lets the plugin supply it. Build passes here with 8.7.2 but it's two minors of drift. Drop the explicit version or bump to 8.12.0.
Nit Legacy Arch dead code on a New-Arch-only line:
example/ios/Podfile:1—ENV['RCT_NEW_ARCH_ENABLED'] = '1'ios/RNIterableAPI/RNIterableAPI.mm:3/57/346+— branches onRCT_NEW_ARCH_ENABLED, ships fullRCT_EXPORT_METHODlegacy implandroid/build.gradle:18-27,84-90— switches betweensrc/newarchandsrc/oldarchandroid/src/oldarch/java/com/RNIterableAPIModule.javastill publishedpackage.json:199-201—module-legacyscaffold label
RN 0.82+ ignores the toggle. Either remove now or file a ticket for SDK 4.0 before this carries forward again.
Nitreact-native-screens range >=4.19.0 <4.25.0 resolves to 4.24.0. npm has 4.25.2 declaring react-native >=0.82.0. Lift the cap unless there's a known incompatibility.

🔹 JIRA Ticket(s) if any
✏️ Description