Hiprup

What rendering engine does Flutter use? Compare Skia and Impeller.

Flutter renders via one of two engines:

Skia — Google's 20-year-old generic 2D library (also powers Chrome and Android). Generates shaders at runtime, which causes the infamous first-frame shader compilation jank. Backends: OpenGL, Metal, Vulkan, Direct3D.

Impeller — Flutter team's new engine, purpose-built for Flutter. Key wins:

  • Shaders precompiled at build time — no shader-compilation jank.

  • GPU-first, tessellated paths.

  • Metal on iOS (default), Vulkan on Android, OpenGL fallback.

  • Multithreaded record + render.

Rollout status (2026): iOS Impeller default since Flutter 3.10 (May 2023); Android default on Vulkan-capable devices since 3.19, expanded through 3.27+ with broader device coverage; Web (CanvasKit) and Desktop still use Skia.

Two senior signals: (1) name 'shader compilation jank' as the original problem Impeller solves — that's the engineering motivation; (2) mention that Impeller's adoption is staggered (iOS default since 3.10, Android still rolling out, Web/Desktop still Skia). The wrong answer is 'Impeller is just faster' — the right answer is 'Impeller precompiles shaders + uses Metal/Vulkan natively, eliminating first-frame jank that Skia's runtime shader compilation caused on iOS especially.'

What rendering engine does Flutter use? Compare Skia and Impeller. | Hiprup