While we're all still excited for the release of React Native 0.67, we want to take a moment to celebrate what the community achieved in the last half and share what we have on the horizon for the future of React Native.
Specifically, H2 2021 was an exciting half for both us and the community where we had the opportunity to invest more in our open-source ecosystem. We revamped some of our processes and created new ones from scratch that will help you, us, and the community to enjoy a better React Native experience.
Repository Health
In H2 2021, we invested in tackling some of the OSS debt that our repository built up over the years. Specifically, most of our focus was around pull requests. We built an internal process to make sure all the new pull requests are addressed in a timely manner.
Although this is not a complete list, we would like to highlight some impactful PRs we received from our contributors:
- Accessibility
- #31630
Added Support for Entrance/exit from collection by Flatlist
by @anaskhraza
- #31630
- Crash
- #29452
Fix - TextInput Drawable to avoid Null Pointer Exception RuntimeError
by @fabriziobertoglio1987
- #29452
- Display
- #31777
fix: TouchableNativeFeedback ripple starts on previous touch location
by @intergalacticspacehighway - #31789
Fix support for blobs larger than 64 KB on Android
by @tomekzaw - #31007
Fix selectionColor doesn't style Android TextInput selection handles
by @fabriziobertoglio1987 - #32398
Fix Android border positioning regression
by @oblador - #29099
[Android] Allows to set individual (left,top,right,bottom) dotted/dashed
by @fabriziobertoglio1987 - #29117
[Android] Fix font weight numeric values
by @fabriziobertoglio1987
- #31777
- Interaction
- #28995
[Android] Fix TextInput Cursor jumping to the right when placeholder null
by @fabriziobertoglio1987 - #28952
[Android] Fix non selectable Text in FlatList
by @fabriziobertoglio1987 - #29046
[Android] onKeyPress event not fired with numeric keys
by @fabriziobertoglio1987 - #31500
fix#29319 - ios dismiss modal
by @intergalacticspacehighway - #32179
Fix: multiline textinput start "jerking" when trying to move cursor.
by @xiankuncheng - #29039
Fix to make taps on views outside parent bounds work on Android
by @hsource
- #28995
- Performance
- #31764
Optimize font handling on iOS
by @Adlai-Holler - #32536
Don't reconstruct app component on split-screen
by @Somena1
- #31764
- Testing
- #31401
Add unit tests for VirtualizedList render quirks
by @NickGerleman
- #31401
Some of those PRs addressed issues that were impacting both Meta and the overall OSS community, given the number of reactions on the corresponding issue they closed.
There are so many more PRs we would like to call out, and we want to thank again all the people that are spending their time to help us address bugs and improve React Native.
Community Engagement
At the beginning of the half we set a goal to communicate with our community more and set process for the behavior to continue. Here were some of our engagements in H2 2021:
- We had the opportunity to participate in React Native EU with a talk from Joshua Gross - Bringing the Fabric renderer to the “Facebook” app
- We hosted an “Ask Us Anything“ (AUA) on Reddit and received over 100 questions! AUAs are a great opportunity for both us, to get a sense of the community engagement, and you all, to ask any kind of questions. If you haven’t yet, make sure you check the answers as some of them are extremely insightful
- We shared our Many Platform Vision, a guide for gotchas for Android 12 and iOS 15, and the progress and vision for Hermes to become the default JS engine for React Native!
- Our own Kevin Gozali appeared on an episode of React Native Radio podcast to talk about the new architecture.
- At ReactConf 2021, ReactConf Rick Hanlon shared the unified many-platform vision for React and React Native. Moreover, Eric Rozell and Steven Moyes got to share the amazing progress React Native Desktop has made in supporting both Meta and Microsoft apps and showcasing the Many Platform Vision in practice.
Beyond sharing more updates in H2 2021, we also leaned on our community more than ever. We relied on critical feedback from contributors as they dogfooded early drafts of the New Architecture material. As well, we were heavily supported by the expertise of our community in debugging critical release issues and improvements.
There is a wealth of knowledge that our community brings into React Native, and we need to continue to nurture it.
The New Architecture Rollout and Releases
2022 is going to be the year of the New Architecture in open source.
We’ve been working hard to deliver the infrastructure needed to rollout the New Architecture to apps and libraries. We involved some of our partners and core contributors/library maintainers to refine our support for the new architecture to get early stage feedback.
We are now preparing to release a new guide on our website: Getting Started with the New Architecture. That will be the entry point to a collection of material that we’re going to release in 2022 and will help you migrate/start your project with the new architecture.
Moreover, we would like to stress the importance of giving feedback on the New Architecture material. We’re still in the process of finalizing the last details and your input will help everyone adopt the new architecture more seamlessly.
Releases play a critical role in the New Architecture rollout. Our goal last half was to ensure any release blocking issues did not stagnate. We approached the problem by clarifying and improving process and responsibilities for better accountability. Our release coordination now occurs in a dedicated discussions repository with clearer release issue reporting.
In H1 2022, we will continue to iterate on release responsibilities to support new architecture rollout. If you’d like to help out testing release candidates or working on improvements, feel free to join the discussion!
To Mobile and beyond
As you can see from the ReactConf talk lineup, React Native is not only Android & iOS.
Earlier in 2021, we shared our Many Platform Vision, and we had a successful time rolling out React Native on both Desktop and VR.
We’re looking forward to converging patterns that are platform-specific into the React Native experience.
Finally, we want to thank again the community for the enormous support in H2 2021. It’s always amazing to see how contributors come together and support each other on GitHub, fixing bugs, sharing their and helping us deliver React Native to millions of users.
Stay tuned and looking forward to an even more amazing 2022 🎉!