← All reportsPublic report

react/react-native

A framework for building native applications using React

126k stars C++ View on GitHubprofiled 11d ago
Try GitZoid
322PRs this week
89Contributors
1197Deps scanned
0Issues found
01 · Repo overview

How react-native is put together

This is the React Native core monorepo, a Yarn 1 workspaces repository that builds the react-native framework for rendering React components as native Android and iOS UI. It is primarily JavaScript/Flow with substantial Kotlin (Gradle build, ktfmt), Objective-C/Swift (CocoaPods podspecs, Xcode tests), C++ (Hermes tooling, clang-format), Python (C++ API parser scripts), and Ruby (Bundler/CocoaPods Gemfile). The repo contains the framework package (packages/react-native), supporting npm packages (codegen, babel preset/plugin, metro-config, dev-middleware, debugger-frontend, jest-preset, eslint config/plugins, asset utilities, gradle-plugin), the RNTester sample app, private test apps, and a large scripts/ release/build toolchain. Data flow: JS source in packages/react-native/Libraries is bundled by Metro via Babel transforms (including babel-plugin-codegen generating view configs from native component specs), then executed on-device against native modules built through Gradle/CocoaPods.

Languages

JavaScriptTypeScriptKotlinObjective-CSwiftC++RubyPython

Frameworks

React 19.2.3React Native 0.87.0-mainMetro bundler (@react-native/metro-babel-transformer 0.87.0-main)Babel 7Jest 29Flow 0.329ESLint 8Prettier 3.9.4Gradle (Kotlin DSL)CocoaPods ~> 1.13Hermes

Infrastructure

GitHub Actions workflows (.github/workflow-scripts)Node.js ^22.13 || ^24.3 || >=26 enginesAndroid Gradle build (gradlew)iOS CocoaPods/Xcode build (runXcodeTests.sh, Podfile)Electron-based debugger frontend packaging (@electron/packager)

Major components

packages/react-native

The core react-native framework: JS Libraries, native Android (ReactAndroid via build.gradle.kts), iOS podspecs, codegen-driven native module specs, and public API typings.

packages/react-native-codegen

Parses Flow/TypeScript native component and module specs and generates C++, ObjC, and Java glue plus view configs.

packages/babel-plugin-codegen

Babel plugin that detects codegenNativeComponent/codegenNativeCommands exports at build time and replaces them with generated view-config code.

packages/dev-middleware / community-cli-plugin / debugger-shell / debugger-frontend

Local development server middleware and Chrome DevTools-based debugging frontend served to connected devices/emulators.

packages/metro-config + react-native-babel-preset/transformer

Ships the Metro configuration and Babel transform chain used to bundle React Native apps.

packages/jest-preset + jest.config.js

Jest preset, asset file transformer, custom resolver, and monorepo test configuration including platform-specific haste mapping.

packages/rn-tester

RNTester sample app exercising the framework on both platforms; used for local dev server start, android run, and Xcode tests.

packages/eslint-config-react-native + eslint plugins + gradle-plugin + scripts/

Shared lint configs (legacy and flat ESLint 9 format), custom lint rules, the Android Gradle plugin, and Node.js build/release/versioning tooling.

Over the past month, React Native development has focused heavily on hardening the codebase: locking down internal C++ APIs with 'stable API guards', improving the SwiftPM build experience, and fixing long-standing crashes in Android view properties and iOS styling. Feature work included a new ResizeObserver web API, animated filter support, and PlatformColor fallbacks, while release prep for v0.86 and v0.87 continued steadily. The team also invested in developer tooling, from better error messages and documentation to more reliable end-to-end test infrastructure.

Week by week

2026-08-24A guard-heavy week locking down internal APIs across many modules, alongside fixes for animations, lists, and asset handling.latest6 changes

Refactor

Stable API guards spread to a dozen modules

Many core internals like the scheduler, Hermes executor, timing module, and rendering components were wrapped with guards that prevent accidental use of unstable APIs.

Refactor

Animated filters no longer force a redraw every frame

Animating visual filters is now much more efficient because it stops triggering a full layout commit on every single frame.

Fix

Fixed zero-sized list viewability and precision bugs

Lists with zero height/width now report which items are visible correctly, and number-based props no longer lose decimal precision in generated Android code.

Fix

DeviceInfo crash and event emitter alignment

A crash when the Android WindowMetrics API is missing was fixed, and event payload types were made consistent across platforms.

Docs

Native Animated architecture documented

A new document explains how the native animation system works under the hood.

Chore

ARM64 Android end-to-end testing

The automated app tests now run on modern ARM64 builds, with clearer error messages when dependencies are misconfigured.

2026-08-17Crash fixes for Android view props landed alongside new ResizeObserver support and continued stable-API hardening of rendering internals.6 changes

Fix

Two Android ViewManager crash fixes

Apps no longer crash when certain dimension or nullable float props are passed to native views on Android.

Feature

ResizeObserver Web API implemented

React Native now supports the standard ResizeObserver interface for watching when elements change size, matching web behavior.

Feature

Experimental style props graduated

backgroundSize, backgroundPosition, and backgroundRepeat lost their 'experimental_' prefix and are now official style options.

Fix

Dashed/dotted outlines without rounded corners

iOS views can now render dashed and dotted outline styles even when they don't have border radii.

Fix

Programmatic scrolls no longer cancel touches

On iOS, scrolling triggered by code no longer interrupts a user's active touch, fixing finicky scroll interactions.

Fix

Codegen infinite loop fixed

The code generator could hang forever on certain type alias names; that edge case is now handled.

2026-08-10Polish week with performance caching, font and text fixes, keyboard inset corrections, and SwiftPM build stabilization.6 changes

Refactor

Color normalization cached

Repeated color conversions are now cached, speeding up rendering work that happens many times per frame.

Feature

Font variation settings as objects

Variable fonts can now be configured with object-style font variation settings instead of only strings.

Fix

Keyboard insets survive ScrollView recycling

Fixes incorrect keyboard spacing states when ScrollViews recycle their rows on Android.

Fix

TextInput placeholder improvements

Placeholders now ellipsize (show '...') when too long, and screenshot tests were added to keep them visually verified.

Fix

Android crash fixes for accessibility and text

Fixed a crash when using accessibilityRole='tabbar' and text truncation issues caused by NULL characters on both platforms.

Chore

Manual type definitions moved aside

Hand-written .d.ts files were relocated into a deprecated folder as part of cleaning up TypeScript definitions.

2026-08-03Accessibility, blob handling, and PlatformColor improvements shipped amid a wave of code formatting and iOS persistence fixes.6 changes

Fix

Accessibility traits derived from role and state

iOS accessibility traits are now automatically inferred from a component's role, making apps more accessible by default.

Feature

PlatformColor lazy fallback support

Developers can supply a raw color as a backup when a platform color reference can't be resolved, on both Android and iOS.

Feature

ArrayBuffer support for Java TurboModules

Native Java modules can now receive efficient binary ArrayBuffer data directly from JavaScript.

Fix

iOS bundle persisted like Android

iOS now saves downloaded JavaScript bundles as local files the same way Android does, improving reload reliability.

Fix

Blob and FileReader memory fixes

Fixed premature memory deallocation during file reads and hardened segment loading against missing cache files.

Fix

Keyboard focus and percentage radius fixes

Role-based interactive views are now keyboard-focusable on iOS, and setting a percentage border radius on Android images no longer crashes.

2026-07-27Big infrastructure week: SwiftPM CI workflows, a Flow tooling migration, and the Android 'pull model' plumbing landed behind feature flags.6 changes

Chore

SwiftPM iOS end-to-end CI added

New automated test pipelines verify RNTester and sample apps built via Apple's SwiftPM package manager.

Chore

Linting migrated to flow-eslint

The project switched from Hermes-based parser packages to Flow's own parser and linter tools across all open-source projects.

Feature

Android pull model wired behind a flag

New plumbing lets Android pull layout updates on demand instead of being pushed, enabled behind an experimental feature flag.

Fix

Long-standing maintainVisibleContentPosition fix

Lists finally calculate their 'keep this item visible' position correctly, resolving a bug report from years ago.

Fix

XMLHttpRequest header behavior corrected

Setting the same header multiple times now appends values per the web standard instead of overwriting them.

Fix

FileReader spec compliance

FileReader stays in its DONE state after aborting and several remaining gaps against the File API specification were closed.

03 · Security check

Dependencies and code review

1197 dependencies scanned

Dependency advisories

Security Watch

No known advisories across 1197 scanned dependencies.

No known advisories in the scanned dependencies.

Code review

No concrete code-level issues confirmed.

Get this report every week for your repos.

GitZoid learns each repo, reports what changed, and flags what needs attention. One flat price for the whole team.

$19 a month, flat · First 10 outputs free · No card required