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.