Flutter Developer – Interview Q&A
Sheet
This document contains Flutter development interview questions with clear and simple
answers.
Q: What is Flutter and why is it popular?
A: Flutter is an open-source UI toolkit by Google for building apps for mobile, web, and
desktop from a single codebase. It's popular because it's fast, cross-platform, and has a rich
set of widgets.
Q: What language is used in Flutter?
A: Flutter uses Dart, a programming language developed by Google.
Q: What is a widget in Flutter?
A: Widgets are the building blocks of a Flutter app. Everything you see on the screen is a
widget.
Q: What is the difference between StatelessWidget and StatefulWidget?
A: StatelessWidget does not change during the app’s runtime. StatefulWidget can change
and update its UI when data changes.
Q: What is hot reload in Flutter?
A: Hot reload lets developers quickly see changes in code without restarting the app.
Q: What are some popular state management techniques in Flutter?
A: Provider, Bloc, Riverpod, GetX, and setState are common state management methods.
Q: What is the difference between async, await, and Future in Dart?
A: `Future` represents a value that will be available later. `async` marks a function that
returns a Future, and `await` waits for the result.
Q: How do you navigate between screens in Flutter?
A: Using Navigator.push() and Navigator.pop(), or with named routes.
Q: How do you pass data between screens in Flutter?
A: By passing arguments through Navigator or using a state management solution.
Q: What is a FutureBuilder in Flutter?
A: FutureBuilder is a widget that builds itself based on the result of a Future, useful for
showing loading indicators and data once it's ready.
Q: What are keys in Flutter and when should you use them?
A: Keys help Flutter identify which widgets changed, especially in lists or dynamic UIs.
Q: How do you handle user input in Flutter?
A: Using TextEditingController with TextField or TextFormField widgets.
Q: What is a Stream and StreamBuilder in Flutter?
A: A Stream provides a sequence of async events. StreamBuilder listens to the stream and
rebuilds the UI when new data comes in.
Q: How do you make HTTP requests in Flutter?
A: Using the `http` package or Dio to call REST APIs.
Q: How do you add and manage dependencies in Flutter?
A: With the `pubspec.yaml` file and the `flutter pub get` command.
Q: How do you create responsive layouts in Flutter?
A: By using `MediaQuery`, `LayoutBuilder`, and flexible widgets like Expanded and Flexible.
Q: What is the difference between hot reload and hot restart?
A: Hot reload keeps the app state and injects code changes. Hot restart resets the app state
and reloads everything.
Q: How do you access native features in Flutter?
A: Using platform channels to communicate with native Android/iOS code.
Q: What is the role of pubspec.yaml in a Flutter project?
A: It defines dependencies, assets, and other metadata for the Flutter app.
Q: How do you test a Flutter app?
A: Using unit tests for logic, widget tests for UI, and integration tests for user flows.