react/react-native
A framework for building native applications using React
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
Frameworks
Infrastructure
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.
A guard-heavy week locking down internal APIs across many modules, alongside fixes for animations, lists, and asset handling.
5 weeksWeek of 2026-08-24
Week of 2026-08-24latest
A guard-heavy week locking down internal APIs across many modules, alongside fixes for animations, lists, and asset handling.
Week of 2026-08-17
Crash fixes for Android view props landed alongside new ResizeObserver support and continued stable-API hardening of rendering internals.
Week of 2026-08-10
Polish week with performance caching, font and text fixes, keyboard inset corrections, and SwiftPM build stabilization.
Week of 2026-08-03
Accessibility, blob handling, and PlatformColor improvements shipped amid a wave of code formatting and iOS persistence fixes.
Week of 2026-07-27
Big infrastructure week: SwiftPM CI workflows, a Flow tooling migration, and the Android 'pull model' plumbing landed behind feature flags.
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.
Dependencies and code review
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