‹ Reports
The Dispatch

OSS Report: facebook/react-native


React Native Development Team Focuses on Performance and Compatibility Amidst New Architecture Transition

React Native, a framework for building native mobile applications using React, is undergoing significant updates to improve performance and compatibility with its new architecture. The project, developed by Facebook, aims to streamline cross-platform app development for iOS and Android.

The development team has been actively optimizing event handling and enhancing error management across components. Notable contributions include improvements in animated components and event batching on Android, as well as updates to the debugger-frontend. The team is also addressing compatibility issues with external libraries like Metro and updating dependencies to support newer platform versions.

Recent Activity

Recent pull requests and issues reflect a focus on performance enhancements, bug fixes, and compatibility improvements. The removal of certain Inspector Panel tabs (#46307) and synchronization of Fabric renderers (#46303) are part of ongoing efforts to align with the new architecture. Updates like the Socket Rocket version bump (#46300) ensure compatibility with visionOS.

Development Team Contributions (Reverse Chronological Order)

  1. Samuel Susla (sammy-SC): Optimized event batching on Android.
  2. Alex Hunt (huntie): Updated debugger-frontend; improved processFilter handling.
  3. Alan Lee (alanleedev): Implemented SafeAreaView for Android.
  4. Rubén Norte (rubennorte): Improved naming conventions in FabricEventDispatcher.
  5. Jorge Cabiedes (jorge-cab): Enhanced error messages for invalid filter values.
  6. Timothy Yung (yungsters): Adjusted animated components for consistent behavior.
  7. Vitali Zaidman (vzaidman): Updated Metro version for compatibility.
  8. Nick Gerleman (NickGerleman): Reverted changes affecting InspectorFlags.
  9. Edmond Chui (EdmondChuiHW): Collaborated on debugger updates.
  10. Joe Vilches (joevilches): Enhanced testing for border interactions.
  11. Sam Zhou (SamChou19815): Deployed new React Native versions.

Of Note

Quantified Reports

Quantify Issues



Recent GitHub Issues Activity

Timespan Opened Closed Comments Labeled Milestones
7 Days 23 21 101 0 1
30 Days 101 66 756 1 1
90 Days 277 175 1661 3 1
All Time 26007 25414 - - -

Like all software activity quantification, these numbers are imperfect but sometimes useful. Comments, Labels, and Milestones refer to those issues opened in the timespan in question.

Quantify commits



Quantified Commit Activity Over 30 Days

Developer Avatar Branches PRs Commits Files Changes
Riccardo Cipolleschi 10 13/1/7 32 40 3312
Nicola Corti 9 12/2/9 28 91 3042
Nick Gerleman 4 22/0/10 23 90 2560
Vitali Zaidman 3 2/0/1 3 18 2084
Jorge Cabiedes 2 9/0/8 14 69 1706
Blake Friedman 5 9/0/7 13 22 1452
distiller 1 0/0/0 2 9 1144
Alex Hunt 3 10/0/9 17 56 971
Siddharth 1 0/0/0 1 2 932
Ruslan Lesiutin 1 5/0/4 4 14 857
Rubén Norte 1 12/0/12 12 49 805
Joe Vilches 2 9/0/8 10 25 690
Samuel Susla 3 4/0/4 6 28 612
nishan (o^▽^o) 2 3/0/1 3 14 599
Alan Lee 2 8/0/6 7 30 572
Sam Zhou 4 1/0/1 9 70 521
React Native Bot 1 0/0/0 4 35 512
Timothy Yung 1 10/0/7 7 9 363
Ramanpreet Nara 1 2/0/1 5 12 347
Eli White 1 4/0/4 4 14 308
Zeya Peng 1 0/0/0 3 8 280
Soe Lynn 1 3/0/3 4 11 245
Pieter De Baets 2 3/0/3 7 15 228
Thomas Nardone 3 0/0/0 6 8 221
Oskar Kwaśniewski 3 6/0/2 6 10 190
Dmytro Rykun 2 1/0/1 2 3 176
Edmond Chui 1 4/0/4 6 20 176
Rob Hogan 1 0/0/0 2 4 172
David Vacca 2 4/0/4 9 7 163
Omar Manjarrez Osornio 1 0/0/0 1 5 157
Daniel Strebinger 1 0/0/0 1 7 148
shubham 2 7/0/5 6 15 144
phillip 2 3/0/3 4 12 143
David Prevost 1 0/0/0 1 6 139
Wu Zhong 3 5/0/3 8 12 137
Dawid Małecki 1 2/0/0 2 11 115
Distiller 1 0/0/0 1 32 114
Bacary Bruno Bodian 1 0/0/0 1 9 101
Fred Liu 1 0/0/0 1 3 66
meetdhanani17 1 0/0/0 1 2 66
Håkon Knutzen 1 0/0/0 1 6 45
Andrey Marchenko 1 1/0/1 1 3 40
Moti Zilberman 1 0/0/0 2 2 39
Danny Su 1 0/0/0 1 3 38
Andrew Dacenko 1 0/0/0 2 3 33
Pavel Gurkovskii 1 0/0/0 1 2 32
Shawn Dempsey 2 2/0/1 2 3 29
Tzvetan Mikov 1 0/0/0 1 1 27
Thibault Malbranche 2 0/0/0 2 1 26
Jan Kassens 1 1/0/0 1 1 24
Tommy Nguyen 3 0/0/0 4 2 21
Deepanshu.shukla 1 0/0/0 1 1 18
Kacper Rożniata 1 1/0/0 1 2 16
Benoit Girard 1 0/0/0 1 1 15
Andrew Knapp 1 1/0/1 1 1 13
Jordan Brown 1 0/0/0 1 4 13
Elene Botchoradze 2 0/0/0 2 2 12
Devan Buggay 1 0/0/0 3 3 11
Vincent Riemer 1 1/0/1 1 1 9
generatedunixname89002005232357 1 0/0/0 1 1 9
Szymon Rybczak 1 0/0/0 1 1 7
Christoph Purrer 1 2/0/1 1 3 7
Gabriel Donadel Dall'Agnol 2 0/0/0 2 2 6
Ingrid Wang 1 0/0/0 2 2 5
Raman Gupta 1 1/0/1 1 1 5
Riley Berton 1 0/0/0 1 1 4
Jakub Grzywacz 1 0/0/0 1 2 3
Krystof Woldrich 1 1/0/1 1 1 3
Bowen Xie 1 0/0/0 1 1 2
Jakub Piasecki 1 1/0/1 1 1 2
Jon Thysell 1 0/0/0 1 2 2
Zhi Zhou 1 0/0/0 1 1 1
None (tdn120) 0 2/0/2 0 0 0
Benoit Girard (bgirard) 0 1/0/1 0 0 0
Andrey Vyazovoy (Vyazovoy) 0 1/0/0 0 0 0
Saad Najmi (Saadnajmi) 0 1/0/0 0 0 0
hazel (hazelmeow) 0 1/0/0 0 0 0
Daniel Kuhn (DanielKuhn) 0 1/0/0 0 0 0
Dirk Postma (dirkpostma) 0 1/0/0 0 0 0
Ingrid Wang (ingridwang) 0 2/0/2 0 0 0
Riley Berton (rileyberton) 0 1/0/1 0 0 0
Tomasz Misiukiewicz (TMisiukiewicz) 0 2/0/1 0 0 0
Janic Duplessis (janicduplessis) 0 2/0/0 0 0 0

PRs: created by that dev and opened/merged/closed-unmerged during the period

Detailed Reports

Report On: Fetch issues



Recent Activity Analysis

The React Native GitHub repository has seen significant activity recently, with 593 open issues. A notable trend is the emergence of issues related to the new architecture and its compatibility with existing features, particularly concerning UI components like TextInput, ScrollView, and Modal. Many issues are marked as needing author feedback or reproducible examples, indicating a potential gap in user-provided information that could hinder resolution efforts.

Several issues highlight critical bugs affecting core functionalities, such as the handling of accessibility features, layout behaviors with absolute positioning, and performance regressions when using certain components. The presence of multiple reports regarding similar problems suggests that these issues may be systemic rather than isolated incidents.

Issue Details

Recent Issues

  1. Issue #46309

    • Title: Archive Generation bug using xCode
    • Priority: Needs: Author Feedback
    • Status: Open
    • Created: 0 days ago
    • Updated: N/A
  2. Issue #46306

    • Title: Emitted event from Android is not received on the JS side
    • Priority: Needs: Author Feedback
    • Status: Open
    • Created: 0 days ago
    • Updated: N/A
  3. Issue #46305

    • Title: Currency unit EURO (€) is spoken only for Google Pixel device and not for Samsung devices in Talkback
    • Priority: Needs: Author Feedback
    • Status: Open
    • Created: 1 day ago
    • Updated: N/A
  4. Issue #46304

    • Title: Build failed using ReactNative@0.75.2
    • Priority: Needs: Triage
    • Status: Open
    • Created: 1 day ago
    • Updated: N/A
  5. Issue #46299

    • Title: Error: couldn't find DSO to load: libjscexecutor.so, while upgrading react-native version from 0.70.1 to 0.71.0
    • Priority: Needs: Author Feedback
    • Status: Open
    • Created: 1 day ago
    • Updated: N/A

Themes and Commonalities

  • New Architecture Issues: Many recent issues are tied to the new architecture introduced in React Native, with developers reporting unexpected behaviors and regressions.
  • Accessibility Concerns: There is a recurring theme of accessibility-related problems, particularly with TextInput and how it interacts with external keyboards and screen readers.
  • Build Failures: Several users have reported build failures after upgrading to newer versions of React Native, indicating potential compatibility issues or bugs in the upgrade process.
  • Lack of Reproducible Examples: A significant number of issues are labeled as needing reproducible examples, which suggests that many users may not be providing sufficient detail for maintainers to effectively address their concerns.

This analysis indicates a critical need for clearer documentation on the new architecture's implications and more robust community support for users encountering these challenges.

Report On: Fetch pull requests



Overview

The pull request data for the React Native project reveals a total of 301 open pull requests, with a diverse range of updates, fixes, and enhancements being proposed. The recent activity indicates a focus on improving performance, fixing bugs, and enhancing compatibility with newer versions of Android and iOS.

Summary of Pull Requests

  1. PR #46307: Remove Inspector Panel perf + network tabs under New Arch

    • State: Open
    • Created: 0 days ago
    • Summary: This PR proposes the removal of performance and network tabs from the Inspector Panel in the new architecture. It is marked as breaking.
  2. PR #46303: Sync Fabric Renderers

    • State: Open
    • Created: 1 day ago
    • Summary: This change synchronizes renderers between React and React Native in preparation for the branch cut of version 0.76.
  3. PR #46301: [RN][CI] Zip slices to preserve symlinks

    • State: Open
    • Created: 1 day ago
    • Summary: Aims to fix an issue with CI by zipping folders generated to preserve symlinks.
  4. PR #46300: chore(iOS): bump socket rocket to 0.7.1

    • State: Open
    • Created: 1 day ago
    • Summary: Updates Socket Rocket to version 0.7.1, adding improvements and support for visionOS.
  5. PR #46298: feat: implement ReactNativeFactory

    • State: Open (Draft)
    • Created: 1 day ago
    • Summary: Introduces ReactNativeFactory to encapsulate logic for creating instances of React Native for iOS.
  6. PR #46297: [iOS] Replace UnimplementedView with UnimplementedNativeView

    • State: Open
    • Created: 1 day ago
    • Summary: Proposes replacing UnimplementedView with UnimplementedNativeView for better handling of unsupported components.
  7. PR #46295: update babel and fix tests accordingly

    • State: Open
    • Created: 1 day ago
    • Summary: Updates Babel dependencies and adjusts tests to align with changes.
  8. PR #46294: Fix StyleSheet.flatten returning undefined for falsy values

    • State: Open
    • Created: 1 day ago
    • Summary: Addresses an issue where StyleSheet.flatten returns undefined when passed falsy values.
  9. PR #46290: fix(android): linear gradient with platform color

    • State: Open
    • Created: 3 days ago
    • Summary: Fixes issues with platform colors in linear gradients on Android.
  10. PR #46287: Animated: Remove Validation from Production Builds

    • State: Open
    • Created: 4 days ago
    • Summary: Refactors the Animated module to improve performance by removing validation checks in production builds.

Analysis of Pull Requests

The recent pull requests indicate a strong focus on enhancing the functionality and performance of React Native, particularly in relation to its new architecture (New Arch). There are several key themes emerging from the analysis:

Performance Improvements

Many pull requests are aimed at optimizing performance, particularly regarding the Animated module (#46287) and event handling mechanisms (#46270). The refactoring efforts suggest an ongoing commitment to ensuring that React Native remains efficient, especially as it evolves with new architectural paradigms.

Bug Fixes and Stability

A significant number of PRs address specific bugs or issues that have been identified within the framework, such as fixing StyleSheet.flatten behavior (#46294) and resolving issues with modal behavior on Android (#46225). These fixes are crucial for maintaining user trust and satisfaction as they directly impact app functionality.

Compatibility Enhancements

Several pull requests focus on ensuring compatibility with newer versions of iOS and Android, such as updating dependencies like Socket Rocket (#46300) and addressing changes introduced in Android 15 (#46235). This is vital as mobile platforms frequently update their operating systems, requiring frameworks like React Native to adapt accordingly.

Community Engagement

The presence of multiple contributors working on various aspects of the framework highlights an active community engaged in improving React Native. The diversity in contributions—from feature additions like ReactNativeFactory (#46298) to internal refactoring—demonstrates a collaborative effort to enhance both developer experience and end-user functionality.

Anomalies

One notable anomaly is the presence of many draft PRs (e.g., #46298), which may indicate ongoing discussions or uncertainty about implementation direction among contributors. Additionally, some PRs have been closed without merging (e.g., #46302), suggesting that not all proposed changes align with project goals or standards.

Conclusion

Overall, the current landscape of pull requests for React Native reflects a robust development cycle focused on performance optimization, bug resolution, and compatibility enhancements. The active engagement from contributors suggests a healthy ecosystem that is responsive to both community needs and technological advancements in mobile development.

Report On: Fetch commits



Repo Commits Analysis

Development Team and Recent Activity

Team Members and Recent Contributions

  1. Samuel Susla (sammy-SC)

    • Recent contributions include fixing event dispatching during view creation, improving error handling in animated components, and optimizing event batching on Android. Collaborated with Rubén Norte on the batching mechanism.
  2. Alex Hunt (huntie)

    • Worked on removing experimental suffixes from page titles, updating debugger-frontend, and improving the handling of processFilter values. Collaborated with Edmond Chui on the debugger updates.
  3. Alan Lee (alanleedev)

    • Focused on adding internal versions of SafeAreaView for limited RN core use and implementing SafeAreaView for Android. Also contributed to removing unnecessary null checks in FabricEventDispatcher.
  4. Rubén Norte (rubennorte)

    • Engaged in optimizing event dispatching mechanisms and improving naming conventions in FabricEventDispatcher. Worked closely with Samuel Susla on event batching optimizations.
  5. Jorge Cabiedes (jorge-cab)

    • Contributed to various improvements including error handling for invalid processFilter values, fixing border radius issues, and enhancing the error messages for invalid filter values.
  6. Timothy Yung (yungsters)

    • Improved error handling in style processing functions and made adjustments to animated components to ensure consistent behavior with ReactElement objects.
  7. Vitali Zaidman (vzaidman)

    • Updated Metro version to ensure compatibility with recent changes in React Native, ensuring that dependencies are correctly aligned.
  8. Nick Gerleman (NickGerleman)

    • Involved in reverting changes that caused issues with InspectorFlags and making adjustments to improve the performance of certain components.
  9. Edmond Chui (EdmondChuiHW)

    • Updated debugger-frontend from previous versions and collaborated with Alex Hunt on various improvements.
  10. Joe Vilches (joevilches)

    • Focused on testing enhancements related to border interactions and contributed to fixing issues with animated properties.
  11. Sam Zhou (SamChou19815)

    • Engaged in deploying new versions of React Native and addressing issues related to package management.

Patterns and Themes

  • The team is actively working on both new features and bug fixes, particularly around event handling, performance optimizations, and compatibility updates with external libraries like Metro.
  • There is a strong emphasis on collaboration among team members, as seen in multiple instances where contributions are cross-referenced or reviewed by peers.
  • Recent activities indicate a focus on improving error handling across various components, suggesting a proactive approach to enhancing user experience and stability.
  • The project is undergoing significant updates related to its architecture, especially concerning TurboModules and bridging mechanisms, which reflects ongoing efforts to modernize the framework.

Conclusions

The React Native development team is highly active, demonstrating a commitment to continuous improvement through regular updates, collaborative efforts, and a focus on both feature development and bug resolution. The recent commits reflect a strategic approach to enhance performance while maintaining compatibility across platforms.