50+Trending Flutter Interview Questions And Answers

Flutter Interview Questions And Answers


What is Flutter?

Flutter is an open-source UI toolkit from Google for crafting beautiful, natively compiled applications for desktop, web, and mobile from a single codebase. Flutter apps are built using the Dart programming language.


How to implement FlutterError.OnError correctly?



What are packages and plugins in Flutter?

  • Packages allow you to import new widgets or functionality into your app.
  • There is a small distinction between packages and plugins.
  • Packages are usually new components or code written purely in Dart whereas plugins work to allow more functionality on the device side using native code.
  • Usually on DartPub, both packages and plugins are referred to as packages and only while creating a new package is the distinction clearly mentioned.


How many types of widgets are there in Flutter?

There are two types of widgets:

  1. StatelessWidget : A widget that does not require mutable state.
  2. StatefulWidget: A widget that has mutable state.


What are the different build modes in Flutter?

  • The Flutter tooling supports three modes when compiling your app, and a headless mode for testing.
  • You choose a compilation mode depending on where you are in the development cycle.
  • The modes are:
    • Debug
    • Profile
    • Release


What is Streams in Flutter/Dart?

  • Asynchronous programming in Dart is characterized by the Future and Stream classes.
  • stream is a sequence of asynchronous events. It is like an asynchronous Iterable—where, instead of getting the next event when you ask for it, the stream tells you that there is an event when it is ready.
  • Streams can be created in many ways but they all are used in the same way; the asynchronous for loopawait for). E.g


  • Streams provide an asynchronous sequence of data.
  • Data sequences include user-generated events and data read from files.
  • You can process a stream using either await for or listen() from the Stream API.
  • Streams provide a way to respond to errors.
  • There are two kinds of streams: single subscription or broadcast.


Differentiate StatelessWidget and StatefulWidget?

Stateless : Widget state creates ONLY ONCE, then it can update values but not state explicitly. That’s why it has only one class which extends with StatelessWidget. They can never re-run build() method again.

Stateful : Widgets can update their STATE (locally) & values multiple times upon event triggered. That’s the reason, the implementation is also different. In this, we have 2 classes, one is StatefulWidget & the other is it’s State implementation handler i.e. State<YourWidget>. So if I say, they can re-run build() method again & again based on events triggered.

  • StatelessWidget will never rebuild by itself (but can from external events). A StatefulWidget can.
  • StatelessWidget is static wheres a StatefulWidget is dynamic.


Why do we pass functions to widgets?

  • Functions are first class objects in Dart and can be passed as parameters to other functions.
  • We pass a function to a widget essentially saying, “invoke this function when something happens”.
  • Callbacks using interfaces like Android (<Java 8) have too much boilerplate code for a simple callback.

Java Functions are first class objects in Dart and can be passed as parameters to other functions.callback:


(Notice that this is only the code for setting up a listener. Defining a button requires separate XML code.)

Dart equivalent:


(Dart does both declaration as well as setting up the callback.) This becomes much cleaner and organised and helps us avoid unnecessary complication.


What is the difference between “main()” and “runApp()” functions in Flutter?

  • main () function came from Java-like languages so it’s where all program started, without it, you can’t write any program on Flutter even without UI.
  • runApp() function should return Widget that would be attached to the screen as a root of the Widget Tree that will be rendered.


What is a “widget” and mention its importance in Flutter?

  • Widgets are basically the UI components in Flutter.
  • It is a way to describe the configuration of an Element.
  • They are inspired from components in React.

Widgets are important in Flutter because everything within a Flutter application is a Widget , from a simple “Text” to “Buttons” to “Screen Layouts”.


What is an App state?

  • State that is not ephemeral, that you want to share across many parts of your app, and that you want to keep between user sessions, is what we call application state (sometimes also called shared state).
  • Examples of application state:
    • User preferences
    • Login info
    • Notifications in a social networking app
    • The shopping cart in an e-commerce app
    • Read/unread state of articles in a news app


Differentiate between Hot Restart and Hot Reload?

Hot Reload

  • Flutter hot reload features works with combination of Small r key on command prompt or Terminal.
  • Hot reload feature quickly compile the newly added code in our file and sent the code to Dart Virtual Machine. After done updating the Code Dart Virtual Machine update the app UI with widgets.
  • Hot Reload takes less time then Hot restart.
  • There is also a draw back in Hot Reload, If you are using States in your application then Hot Reload preservers the States so they will not update on Hot Reload our set to their default values.

Hot Restart

  • Hot restart is much different than hot reload.
  • In Hot restart it destroys the preserves State value and set them to their default. So if you are using States value in your application then after every hot restart the developer gets fully compiled application and all the states will be set to their defaults.
  • The app widget tree is completely rebuilt with new typed code.
  • Hot Restart takes much higher time than Hot reload.





More Flutter Interview Questions

What is the difference between a StatelessWidget and a StatefulWidget in Flutter?

Explain the Stateful Widget Lifecycle?

What is the purpose of a SafeArea?

When to use a mainAxisSize?

SizedBox VS Container?

List the Visibility widgets in flutter and the differences?

Can we use Color and Decoration property simultaneously in the Container? Explain

Inorder for the CrossAxisAlignment.baseline to work what is another property that we need to set?

when should we use a resizeToAvoidBottomInset?

What is the difference between ‘as’,’show’ and ‘hide’ in an import statement?

What is the importance of a TextEditingController?

Why do we use a Reverse property in a Listview?

Difference between a Modal and Persistent BottomSheet with an example?

How is an Inherited Widget different from a Provider?

What is an UnmodifiableListView?

Difference between these operators “?? and ?.”

What is the purpose of ModalRoute.of()?

Difference between a Navigator.pushNamed and Navigator.pushReplacementNamed?

Difference between a Single Instance and Scoped Instance ?

When do you use the WidgetsBindingObserver?

What is Flutter tree shaking?

What are GlobalKeys?

When should you use mainAxisAlignment and crossAxisAlignment?

When can you use double.INFINITY?

What is TickerTween and AnimatedBuilder?

What is ephemeral state?

What is an AspectRatio widget used for?

How would you access StatefulWidget properties from its State?

Is there a suggested limit to the number of FloatingActionButtons a screen can have? Give a reason(s) for your answer

Mention two or more operations that would require you to use or return a Future.

What is a Spacer widget?

What is the difference between hot restart and hot reload?

What is an InheritedWidget? List some examples.

Why is the build() method on State and not StatefulWidgets?

What is a pubspec file in Dart?

How is Flutter native?

What is a Navigator and what are Routes in Flutter?

What is a PageRoute?

Explain asyncawait and Futures.

How can you update a ListView dynamically?

What is a Stream?

What are keys in Flutter and when should you use it?


Leave a Reply

Your email address will not be published. Required fields are marked *