Skip to content

Update react-native version - #129

Merged
mihailapuste merged 6 commits into
mainfrom
update-toadly-version
Jun 4, 2026
Merged

Update react-native version#129
mihailapuste merged 6 commits into
mainfrom
update-toadly-version

Conversation

@mihailapuste

@mihailapuste mihailapuste commented Jun 4, 2026

Copy link
Copy Markdown
Owner

Summary

This PR modernizes react-native-toadly and its example app to the current React Native/Nitro stack. It updates the core package, refreshes native iOS/Android project files, regenerates Nitro bindings, fixes CI/tooling breakage discovered during validation, and updates the project documentation so future work can resume with clear setup and version context.

Major Version Updates

  • Upgrades React Native from 0.78.1 to 0.85.3 in the root package and example app.
  • Pins React to 19.2.3 so it exactly matches the react-native-renderer version embedded by React Native 0.85.3.
  • Upgrades react-native-nitro-modules from ^0.25.2 to ^0.35.9.
  • Replaces the deprecated nitro-codegen script with nitrogen and adds nitrogen@^0.35.9.
  • Updates React Native CLI packages to 20.1.3.
  • Updates React Native Babel, Metro, TypeScript, Jest, and ESLint-related packages to the 0.85.3 generation.
  • Pins the local Node version to v20.19.4 in .nvmrc and updates package engine requirements accordingly.

Nitro And Generated Bindings

  • Updates nitro.json to the newer Nitro autolinking shape with explicit iOS and Android language/configuration entries.
  • Regenerates committed nitrogen/generated artifacts for Android, iOS, and shared C++ bindings.
  • Updates Android native registration to use facebook::jni::initialize and registerAllNatives() from the regenerated Nitro loader.
  • Refreshes generated Swift/C++ interop artifacts for the newer Nitro output format.

iOS Changes

  • Refreshes the example iOS project for React Native 0.85.3.
  • Migrates AppDelegate.swift to the newer RCTReactNativeFactory / RCTDefaultReactNativeFactoryDelegate style.
  • Enables the new architecture flag in the example Info.plist.
  • Adds CADisableMinimumFrameDurationOnPhone from the current RN template expectations.
  • Refreshes Podfile.lock for React Native 0.85.3, NitroModules 0.35.9, the newer Hermes/prebuilt RN dependencies, and related pod graph changes.
  • Fixes the CI CocoaPods path so it uses the example Gemfile via bundle install and bundle exec pod install.
  • Updates Gemfile.lock from Bundler 1.17.2 to 2.4.22, fixing the Ruby 3.3 CI failure caused by Bundler 1 calling removed String#untaint.

Android Changes

  • Refreshes the example Android project for React Native 0.85.3.
  • Updates MainApplication.kt to the newer ReactHost / loadReactNative template shape.
  • Updates Android SDK configuration to compile/target SDK 36.
  • Updates Kotlin to 2.1.20 and Gradle wrapper to 9.3.1.
  • Adds the current RN template edgeToEdgeEnabled=false setting.
  • Updates Android settings autolinking to invoke the checked-in Yarn release directly, so RN config resolution works reliably with Yarn 3.
  • Keeps the Android example building against the local workspace package and regenerated Nitro bindings.

JavaScript, TypeScript, And Test Tooling

  • Updates the example tsconfig.json to extend @react-native/typescript-config correctly for RN 0.85.3.
  • Adds Jest/Node types to the example TypeScript config.
  • Switches Jest configuration to @react-native/jest-preset.
  • Adds a root jest.transformer.js using @react-native/babel-preset so tests compile consistently with the upgraded RN toolchain.
  • Cleans up unused caught error variables in logging/network monitoring code.

Documentation Updates

  • Rewrites the root README to describe the current SDK capabilities, API surface, limitations, and development entry points.
  • Updates the example README with current setup, local config, and validation workflow details.
  • Updates CONTRIBUTING with the pinned Node/Yarn workflow and the current expectations around running Nitrogen after Nitro/RN changes.
  • Adds docs/resume.md with a project scan, current architecture notes, package modernization notes, validation commands, and known follow-up work.

CI Fixes

  • Updates the iOS build workflow to run CocoaPods through Bundler instead of relying on the system pod executable.
  • Fixes the macOS CI failure where Ruby 3.3 loaded Bundler 1.17.2 from Gemfile.lock and crashed on String#untaint.
  • Keeps the existing Turbo cache flow, CocoaPods cache flow, and explicit iOS build command intact.

Validation Performed

  • node .yarn/releases/yarn-3.6.1.cjs typecheck
  • node .yarn/releases/yarn-3.6.1.cjs lint
  • node .yarn/releases/yarn-3.6.1.cjs test
  • node .yarn/releases/yarn-3.6.1.cjs example react-native config
  • ANDROID_HOME="$HOME/Library/Android/sdk" node .yarn/releases/yarn-3.6.1.cjs example build:android
  • node .yarn/releases/yarn-3.6.1.cjs example build:ios
  • node .yarn/releases/yarn-3.6.1.cjs turbo run build:ios --cache-dir=".turbo/ios"
  • Manual Android example launch on emulator after restoring emulator network and Metro host forwarding.

Reviewer Notes

  • The large yarn.lock, Podfile.lock, and nitrogen/generated diffs are expected from the RN/Nitro version jump.
  • React is intentionally pinned to 19.2.3; using 19.2.7 caused a runtime renderer mismatch with React Native 0.85.3.
  • Android manual bug submission now works when the emulator has outbound network, but the Android dialog still optimistically shows success before the GitHub request returns. That UX cleanup is left as follow-up.
  • Android screenshot attachment is still not implemented; this remains documented as a current limitation.

- Updated copyright year from 2025 to current year in generated files.
- Refactored Toadly native initialization to use `registerNatives()` instead of `initialize()`.
- Enhanced C++/Swift bridge with new methods for memory management and object comparison.
- Updated Gradle and CMake files to include new definitions for better integration.
- Improved Swift interop by modifying class definitions and method signatures.
- Updated package dependencies to the latest versions for better compatibility and performance.
… update Gemfile.lock to reflect Bundler version
@mihailapuste
mihailapuste merged commit 1de9168 into main Jun 4, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant