top | item 30701120

(no title)

jbaudanza | 4 years ago

I've been using react native heavily for the past 18 months.

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.

discuss

order

cvburgess|4 years ago

My team wrapped an ambitious RN project over the last 6 months and had no such issues. We actually migrated from "vanilla" RN to the latest Expo release as EAS allows you to use native code and do nearly anything you could do with vanilla.

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

Memoizing everything might be hurting more than helping your apps performance. I’ve built a few different apps with RN, the issues here might be specific to this project

danlugo92|4 years ago

No

I've had apps where I memoized everything, then turned it all of for a testrun and it was very visibly slower without memoizing.