What is the difference between Flutter SDK, Flutter Engine, and Dart VM?
Three distinct things candidates often conflate:
Flutter SDK — what you install via the
flutterCLI. It's the umbrella that includes:
The Dart Framework source code (what you
import 'package:flutter/...').The Engine binaries (prebuilt per platform).
A bundled Dart SDK (compiler, VM, analyzer).
The
flutterCLI itself.
Flutter Engine — the C++ engine: Skia/Impeller, text layout, gestures, platform channels. Shipped as prebuilt binaries. Lives in a separate repo (
flutter/engine).
Dart VM — the runtime that executes Dart, embedded inside the Engine. JIT mode in debug (enables Hot Reload), AOT mode in profile/release (native ARM). Lives in
dart-lang/sdk.
The trap: candidates conflate 'Flutter SDK' with 'Dart SDK'. The clean mental model: Flutter SDK is the umbrella that bundles (1) the Framework (Dart source you import), (2) the Engine (prebuilt C++ binaries), and (3) the Dart SDK (compiler + VM). Knowing they live in separate Git repos (flutter/flutter, flutter/engine, dart-lang/sdk) is the senior detail.