Comment by winrid
16 days ago
Flutter re-generates the entire layout every tick and diffs it (immediate-mode), like a game engine. If your device isn't quite fast enough it'll lag, yep. RN is retained mode (but written in immediate-mode style and the diffing only happens when it has to).
That is absolutely not true. Elements with dirty layouts are tracked and layout is only recomputed up to the neearest layout boundary.
Weird, it looks like you're right but I recall their early marketing saying stuff like just rebuild the whole layout, it's cheap since it's compiled. They must have meant it's cheap to rebuild as needed haha
I'd say it's the opposite, on crappy devices, Flutter feels faster than native, not sure how but that's the end result. I've been testing on an old Samsung J3 and it's definitely better than native.
That's also maybe why it's so popular in India.
Flutter is essentially a game engine so it bypasses the typical cycles involved with native widgets and there are several different ways why Flutter works well on lower end phones
Interesting, I didn’t know that it was immediate mode. According to the article [1] though, it now uses rendering engine with Retained Mode due to performance issues.
[1] https://medium.com/@0s.and.1s/flutter-part-iv-skia-vs-impell...
ah neat, so they rewrote the rendering engine in C++ and exposed it via Dart APIs, as opposed to everything being in Dart.
It has been like that since the very beginning (sky engine).