Remix.run Logo
faangguyindia 6 hours 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

hermitwriter 4 hours ago | parent [-]

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

flakiness 3 hours ago | parent | next [-]

mind sharing a link or two on the native code generation bit? I'm far behind from the scene but still curious.

cyberax 3 hours ago | parent [-]

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

cyberax 3 hours ago | parent | prev [-]

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.