Andrei Calazans

React Native Weekly - W16 2021

☕️ 3 min read

Welcome to the fifth edition of React Native Weekly = )

Reach out to me via Twitter if you have any feedback, and don’t forget to subscribe!

Bringing Hermes to iOS

Callstack team was the main proponent to getting Hermes released onto iOS. They will publish a series of articles about it. Keep it an eye out.

#2-ranked iOS App and #3-ranked Android App Are Fully Written In React Native 🤯

Coinbase’s investment in React Native is notorious and serves as an inspiration for others. See Jesse Polack’s recent tweet about this.

Multi-threading on Android

Marc Rousavy is doing some interesting work on multi-threading in React Native inspired by Reanimated’s approach with worklets and TurboModules. He keeps making progress and recently tweeted about Android support.

Keep an eye out for this repo if you are interested.

Don’t disconnect DevTools WebSocket connection on Cmd+D

I have experienced this myself and I am sure some of you have too, using Cmd+D to open the menu ends up disconnecting from the React Native Inspector. The following commit adds a workaround for this.

Fabric Progress - RuntimeScheduler

This week was full of work on the RuntimeScheduler. The RuntimeScheduler works together with the UIManager to dispatch events back and forth between the native and JS layers.

Some of the work included:

This priority system will allow for the UI thread to react to more important tasks and delay response to lower priority tasks. This is a core idea behind the Fabric rearchitecture and what will make React Native way more responsive than it is today.

+enum class SchedulerPriority : int {
+  ImmediatePriority = 1,
+  UserBlockingPriority = 2,
+  NormalPriority = 3,
+  LowPriority = 4,
+  IdlePriority = 5,

Small Improvements To The Differentiator Module

This module contains a set of functions that does the diff when updating the ShadowTree and deciding what needs to be removed or updated.

d1b1e8b80d Differ: ensure all ShadowViews generated by differ have correct LayoutMetrics
c22b874fd6 Differ: ensure ownership of all ShadowView/ShadowNode pairs, ensure consistency of nodes
b9828a8afa Differ: fix edge-case where we "REMOVE" an older version of a ShadowNode
39b8233c93 Copy Differ implementation to new file, feature-flag-gate new differ
5eba5c11b0 Differ: improvements to logging

Disable accessibilityState when TouchableWithoutFeedback is disabled

See commit.

Remove defaultProps from KeyboardAvoidingView

See commit.

-  static defaultProps: {|enabled: boolean, keyboardVerticalOffset: number|} = {
-    enabled: true,
-    keyboardVerticalOffset: 0,
-  };

Interesting Stuff From The Community

That Is It!

That’s it for this week. If you want to see more checkout last week’s post here. Subscribe to get notified when new posts are out = )