I have been developing a high-fidelity animation app using Flutter, but I am still noticing some "shader jank" on older iPhone models during the initial frame loads. With the recent updates, is it worth force-enabling the Impeller engine, or should I stick with the default Skia setup for better stability across all iOS versions?
3 answers
Enabling Impeller is practically a requirement now if you want to eliminate that annoying stutter on the first run. Google has made significant strides in 2024 to ensure it handles complex vector graphics much more efficiently than Skia did. I transitioned my e-commerce project last November and saw a 40% reduction in frame drops. Just ensure you test thoroughly on mid-range devices, as some custom shaders might behave differently. It’s definitely the future of the framework’s rendering pipeline for high-end mobile experiences.
Does anyone know if Impeller currently supports all the same custom paint features that we’ve been using with Skia, or are there still API gaps?
I suggest moving to Impeller immediately for iOS. It pre-compiles shaders, which is the only real way to kill that first-load jank permanently.
Totally agree with Gregory. The difference in smoothness for scrolling lists and hero transitions is night and day once Impeller is active.
Most standard Canvas APIs are fully supported, Jeffrey. However, very specific niche blending modes might still show slight discrepancies. I'd recommend checking the official Flutter GitHub "Impeller" tag for the latest parity updates before you flip the switch on a production app.