Skip to content

Instantly share code, notes, and snippets.

@HugoGresse
Last active March 11, 2021 15:20
Show Gist options
  • Save HugoGresse/83a64c5a726e9d66ee8322b24b10b3c7 to your computer and use it in GitHub Desktop.
Save HugoGresse/83a64c5a726e9d66ee8322b24b10b3c7 to your computer and use it in GitHub Desktop.
React Native, the good, the bad and the ugly

Here is a small list of interesting fact about React Native, as used inside PlantNet Mobile apps for Android & iOS, 6 million users

This is a work in progress and is completed as time flies

Good

  • Fast refresh is so good
  • a big community
  • fast to dev

Bad

  • Need to re-enable tcp reverse with ADB on each device connection.
  • Some new React Native version broke image upload, for many months, and was fixed in the next minor, not a patch (RN 0.63). Source
  • react-native-maps is bugged, almost zero maintenance. The Maps UI (zoom buttons, etc) is broken since 2018. Source
  • Picking an image from Gallerie or Camera is broken on some device (aroung 1-15%, ned more stats), it is fixed in Expo, but PlantNet is not using expo, on the two mains image picking lib for RN. Source Source2
  • React Native maps custering will probably never go out, real word diff between os on maps
  • Error out without any warning/error in the console, need to remove code to troubleshot..

iOS

  • it take 15-20 minutes to archive, on a base specs MacBookPro 16" 2020, 5min on Android
backend.js:32 Require cycle: src/stacknavigator/SpeciesDetails.js -> src/screens/navigateTo.js -> src/stacknavigator/SpeciesDetails.js

Require cycles are allowed, but can result in uninitialized values. Consider refactoring to remove the need for a cycle.
backend.js:32 Require cycle: node_modules/react-native-maps/lib/components/MapView.js -> node_modules/react-native-maps/lib/components/Geojson.js -> node_modules/react-native-maps/lib/components/MapView.js

Require cycles are allowed, but can result in uninitialized values. Consider refactoring to remove the need for a cycle.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment