Flutter Interview Questions (2026): By Level, With Model Answers

How to use this

Flutter’s “everything is a widget” model is simple to start and easy to abuse. These questions check whether a candidate understands the rendering and state model.

Hiring a Flutter developer is easy. Telling a real one from a convincing résumé is the hard part — and it’s most of what we do. These are grouped by level, because the same question that stretches a junior is a warm-up for a senior.

Junior Flutter interview questions

0–2 years

Widgets and Dart basics.

What does “everything is a widget” mean?

What a strong answer covers

UI, layout and even some behaviour are composed from widgets in a tree; you build UI by composing widgets, not templates.

Red flag

Looks for HTML-like templates.

What is the difference between StatelessWidget and StatefulWidget?

What a strong answer covers

Stateless has no mutable state and rebuilds only when inputs change; Stateful holds state in a State object and rebuilds via setState.

Red flag

Uses Stateful everywhere or mutates fields without setState.

What does setState do?

What a strong answer covers

Marks the widget dirty so Flutter rebuilds it with new state on the next frame.

Red flag

Mutates state directly and the UI doesn’t update.

What is the build method?

What a strong answer covers

Returns the widget subtree for the current state; it should be pure and fast because it can run often.

Red flag

Does expensive work or side effects inside build.

What is the difference between hot reload and hot restart?

What a strong answer covers

Hot reload injects changed code keeping state; hot restart rebuilds the app losing state.

Red flag

Doesn’t know why state sometimes resets.

How does layout work with Row, Column and Expanded?

What a strong answer covers

Flex widgets arrange children; Expanded/Flexible distribute remaining space along the main axis.

Red flag

Overflows the screen with no idea how to constrain children.

What are keys in Flutter?

What a strong answer covers

They preserve widget state across rebuilds when position changes, important in lists.

Red flag

Never uses keys where identity matters.

What is BuildContext?

What a strong answer covers

A handle to a widget’s location in the tree, used to look up inherited widgets, theme and navigation.

Red flag

Uses a context after the widget is disposed.

Mid-level Flutter interview questions

2–5 years

State management and async.

What state management approaches exist?

What a strong answer covers

From setState and InheritedWidget to Provider, Riverpod and BLoC; choose by app complexity.

Red flag

Only knows setState and prop-drills everything.

How do Futures and async/await work in Dart?

What a strong answer covers

Futures represent eventual values; async/await reads sequentially, and FutureBuilder renders based on async state.

Red flag

Blocks the UI thread waiting on a Future.

What are Streams and where do you use them?

What a strong answer covers

Sequences of async events (e.g. websockets, state changes); StreamBuilder rebuilds on new events.

Red flag

Polls instead of subscribing to a stream.

What is the widget tree vs element tree vs render tree?

What a strong answer covers

Widgets are immutable configs; elements are their instances that persist; the render tree does layout and painting. This explains efficient rebuilds.

Red flag

Thinks a rebuild recreates the whole UI from scratch.

How do you avoid unnecessary rebuilds?

What a strong answer covers

const constructors, splitting widgets, scoping state, and using selectors so only affected widgets rebuild.

Red flag

Rebuilds the entire screen on every change.

How do you handle navigation and routing?

What a strong answer covers

The Navigator with named or declarative routing (e.g. go_router), passing and returning data between screens.

Red flag

Cannot pass data between screens cleanly.

How do you handle different screen sizes?

What a strong answer covers

MediaQuery, LayoutBuilder and flexible layouts for responsive and adaptive design.

Red flag

Hardcodes pixel sizes for one device.

What is the difference between mainAxis and crossAxis?

What a strong answer covers

The main axis is the flex direction; the cross axis is perpendicular; alignment properties target each.

Red flag

Confuses which axis alignment affects.

Senior Flutter interview questions

5+ years

Performance and architecture.

How do you diagnose jank in Flutter?

What a strong answer covers

The DevTools performance overlay and timeline to find frames exceeding the budget, then reduce work in build/paint.

Red flag

Assumes Flutter can’t drop frames.

How does Flutter render, and why is it fast?

What a strong answer covers

It draws widgets itself via Skia/Impeller rather than using native widgets, giving consistent UI and control at 60/120fps.

Red flag

Thinks Flutter wraps native platform widgets.

How do you structure a large Flutter app?

What a strong answer covers

Feature-first architecture, a clear state-management choice, separation of UI and business logic, and dependency injection.

Red flag

God-widgets mixing UI, state and I/O.

How do you write and test business logic separately from UI?

What a strong answer covers

Keep logic in testable classes/notifiers/BLoCs and unit-test them, with widget tests for UI.

Red flag

All logic lives inside widgets, untestable.

How do you handle platform channels?

What a strong answer covers

MethodChannels to call native iOS/Android code for features not covered by plugins.

Red flag

Doesn’t know how to reach native APIs.

How do you optimise app size and startup?

What a strong answer covers

Tree-shaking, deferred loading, split debug info, and trimming assets and dependencies.

Red flag

Ships a bloated app with slow start.

When is Flutter the wrong choice?

What a strong answer covers

Where deep native platform integration, tiny binary size, or an existing native team outweighs shared-code benefits.

Red flag

Claims Flutter is always the right call.

How do you manage immutability and rebuilds with complex state?

What a strong answer covers

Immutable state objects and equality so the framework can skip unchanged subtrees; libraries like freezed help.

Red flag

Mutates shared state and gets stale UI.

Skip the screening entirely.We vet Flutter engineers so you don’t have to — embed one in your team, or have us build it.

Hire Flutter developersCompare us

Build and score a full interview with our free interview scorecard tool, browse the full question hub, or see how we interview engineers.

Share