Comment by faangguyindia
1 day ago
React Native is slow.
Hermes VM doesn't even have JIT.
If the majority of your app is native code and only a few places are stitched together via JS code that runs in the Hermes VM, then React Native is suitable for you.
Look at V8 vs. Hermes performance.
We use Flutter; we rarely need to write native code. We have three apps: Symbiote workout app, CalorieCodex, an AI calorie tracker app, and MacroCodex with 17,000+ users, all of them completely free
Your data is out of date. React Native performs within spitting distance of raw native now because in the last 2 years... it basically became native - it's now false dichotomy
I tried it about 2 months ago, btw. No prior experience with Flutter or RN.
mind sharing a link or two on the native code generation bit? I'm far behind from the scene but still curious.
They probably mean that modern RN apps can now use a lot of native widgets. You can look at https://docs.expo.dev/versions/latest/sdk/ui/universal/
There's also a project to add a static JS compiler, but it's been in development hell for the last 3 years: https://github.com/facebook/hermes/tree/static_h
It's not. RN has always used native widgets (with a custom renderer) but the JS code itself is purely interpreted.
They increased the interpreter performance by quite a bit, but JITs are impossible on iOS, so it can never be fast.
We have a RN app that needs to do a lot of geometry processing and things like polyclip are unbearably slow, so we had to add native modules to accelerate them. The web version with a true JIT works just fine.