Unlike many other mobile frameworks, Flutter compiles your Dart ahead-of-time down to native code for each platform.
(ie React Native)
Just like with web development, building a Flutter app consists of nesting elements inside one another.
Flutter doesn't use a templating language like HTML so you build the template by nesting classes.
A simple widget with properties that don't change
Describes part of the user interface by building a constellation of other widgets that describe the user interface more concretely
Can have stateful widgets nested inside
A more complex widget with properties that will change during it's life, due to user input or something else like data returned from an API call
All widgets need to override the build method. This method needs to return a Widget.
Provides a comprehensive set of Material Design Widgets that we can use to easily scaffold our application
main() is the entry point of a Dart Application. The Flutter framework gives us runApp(), the point of entry for our Flutter App.
Our app is a stateless widget with stateful widgets nested inside.
If you need to keep track of any global variables, you should use a stateful Widget instead
The Home page is a stateful widget that encompasses all other items in the app
A widget used to implement the basic material design visual layout structure
This class provides APIs for showing drawers, snack bars, and bottom sheets