What is Flutter?
Short Answer
Flutter is Google's open-source UI toolkit for building natively compiled apps for mobile, web, and desktop from a single Dart codebase.
Flutter renders its own widgets directly to a canvas via the Skia (and newer Impeller) graphics engine, instead of wrapping native platform widgets. This means a Flutter app looks and behaves identically across platforms, and isn't limited by the native widget set. The trade-off is that Flutter ships its own rendering engine with the app, which makes apps slightly larger but gives full control over every pixel and consistent 60/120fps performance.
Flutter apps are written in Dart, compiled ahead-of-time (AOT) to native ARM/x64 machine code for release builds, which is why performance is close to native. During development, Dart's just-in-time (JIT) compiler powers hot reload, letting you see UI changes in under a second without restarting the app.
Common Mistakes
- ×Saying Flutter "wraps native widgets" — it doesn't; it paints everything itself.
- ×Confusing Flutter (the UI toolkit) with Dart (the language) as if they're the same thing.
Interview Tips
- →Mention the rendering engine (Skia/Impeller) — it shows you understand why Flutter looks consistent across platforms.
- →Be ready to contrast this with React Native, which bridges to native widgets.
Related Questions
What is the difference between StatelessWidget and StatefulWidget?
A StatelessWidget is immutable and rebuilds only when its parent rebuilds; a StatefulWidget holds mutable state via a separate State object and can rebuild itself whenever that state changes.
Describe Flutter's architecture — how does a widget end up as pixels on screen?
Flutter has three parallel trees — Widget, Element, and RenderObject — where widgets are immutable configuration, elements are the mutable instances that manage the tree, and render objects handle layout, painting, and hit-testing.