(no title)
jbaudanza | 4 years ago
Because there's no JIT, Javascript is slow on mobile, especially on Android. I spend a lot of my creative energy trying to optimize the render function. I often times wonder if I should have chosen Flutter instead.
Each framework has its bullshit you don't discover until it's too late. So, I'm sure if I had chosen Flutter I'd be complaining about something else.. but boy am I tired of stuffing things into useMemo, useCallback, and stressing about the identity of things in dependency arrays.
There's some exciting stuff coming up this year with React/React Native: Hermes, React Native "New architecture", react concurrency mode (although I still don't 100% understand what this is). I hope one of these things improves the current situation.
cvburgess|4 years ago
Every codebase is unique, but I would (and have) recommended this stack to multiple teams as it served us really well.
We onboarded 3 React devs - 2 of which had never used RN before and all 3 were pushing out features within a two week sprint.
We also got to scan a QR code from a GitHub PR and allowed other engineers, QA folk, and designers to test PRs before merging on a real physical device - I am not sure if Flutter has something similar, but the tooling around RN is amazing.
Also, LogRocket, Sentry, LaunchDarkly, Auth0 and most of the SaaS tools youre familiar with in React have solid ReactNative support - often times including web if you use RNW.
jdmg94|4 years ago
jbaudanza|4 years ago
Coinbase, in fact, has made it a rule that all things must be put in useMemo. https://attardi.org/why-we-memo-all-the-things/
Facebook is working on an experimental compiler called React Forget that will transparently memoize everything for you.
https://www.reddit.com/r/reactjs/comments/rcn5ks/react_forge...
danlugo92|4 years ago
I've had apps where I memoized everything, then turned it all of for a testrun and it was very visibly slower without memoizing.