Welcome to the 18th and first ever late edition of React Native Weekly 😅
This is everything that happened in between 12th and 18th of July 2021.
Fabric is coming to open source
The biggest news of last week was this tweet from Joshua Gross email@example.com mentioning that they have migrated all of their 1k+ screens to Fabric and are ready to start bringing it to open source.
We can expect Fabric to land and be appropriately documented after version 0.65 of React Native according to Lorenzo
I’ve mentioned in previous weekly how the fact that React Native is run on so many apps within Facebook a great way to QA how React Native is performing.
How to make your React Native App Faster
ThorWallet React Native App
Want to see a codebase of a real React Native app? Check out ThorWallet, expect to see usage of react-navigation, linear gradient, styled-components, and more.
Wanna make 300–500k a year?
Nader Dabit is helping someone find a React Native expert who wants to make real money 🤑
Allow configuring ndk build architectures (#31232)
Building from source in debug takes a very long time because native builds need to run for all supported architectures. It is possible to check which architecture the devices for which we are about to launch the app on are and build only for those. For most cases we can reduce the number of architectures we build for to 1 instead of 4, resulting in a large speedup of the build.
This is inspired by iOS which has a “Build for active architecture only” option. Since android doesn’t really support this natively we can implement it here and also in react-native by reading the build properties that we pass and alter the abi we build for.
With fabric / codegen coming up I suspect that we might want to default to building c++ soon. This should ease the transition as builds won’t be orders of magnitude slower.
See https://github.com/react-native-community/cli/pull/1388 for more context and how we use this new config to automatically detect running emulator architectures.
Add MEDIA_STOP, MEDIA_NEXT, and MEDIA_PREVIOUS event support to Android TV (#31837)
Unify Typeface Logic (Android)
Some clean up around the TypeFace logic that refactors how
Typeface style and weight are applied in React Native on Android.
In result this fixes and adds:
Android[Fixed] - Fixed a rare crash due to
Typeface.sDefaultTypeface (Android SDK) being
Android[Fixed] - Fixed font weight support for the Fabric renderer.
Android[Added] - Added a new example to test font weights in
Clean up & Extend Codegen
Héctor Ramos firstname.lastname@example.org worked on Codegen this week:
Remove defaultProps from SegmentedControlIOS (#31804)
Fix support for blobs larger than 64 KB on Android (#31789)
The problem was quite interesting, it turns out when an object URL containing a large blob was passed as source of
<Image /> it can hit the pipe buffer limited capacity of 65536 bytes (https://man7.org/linux/man-pages/man7/pipe.7.html, section "Pipe capacity").
When it hits the limited capacity the write operation to the buffer is blocked until you read the output of the pipe. In the current implementation of
BlobProvider.openFile it doesn’t read in parallel causing it to stay blocked forever if it hits the limited capacity.
Add support to URI keyboard type in Android (#31781)
This commit fixes the
url not doing anything on Android.
That Is It!
That’s it for this week. If you want to see more checkout the previous week’s posts here. Subscribe to get notified when new posts are out = )