Free online courseFlutter for Beginners: Complete Flutter Tutorial Series
Duration of the online course: 2 hours and 33 minutes
New
Build your first Flutter app fast with this free course—learn widgets, layouts, navigation, forms, and debugging to launch Android & iOS projects confidently.
In this free course, learn about
Flutter’s widget tree model and how UI is composed from nested widgets
Setting up app structure with MaterialApp, Scaffold, AppBar, and BottomAppBar
Using Scaffold.bottomNavigationBar to place a bar at the bottom of the screen
Laying out UI with Column/Row and mainAxis/crossAxis alignment options
Managing state with StatefulWidget and setState() to trigger UI updates
Using common UI widgets: Container (padding vs margin), Center, Spacer, Expanded
Loading and showing images via Image.network and Image.asset (pubspec.yaml assets)
Fixing RenderFlex overflow by making content scrollable (SingleChildScrollView/ListView)
Building lists with ListView and ListView.builder, including itemCount to avoid infinite items
Using ListTile with leading/trailing widgets for structured list rows
Navigation between pages with Navigator and named routes
Handling TextFormField input with a controller and displaying submitted text
Course Description
If you want to build beautiful mobile apps without juggling separate codebases, Flutter is one of the most practical places to start. This beginner-friendly, free online course helps you go from knowing nothing about Flutter to understanding how real apps are structured, how screens are built, and how your interface reacts when users interact with it. You will learn to think in widgets, so you can confidently assemble UIs the same way Flutter does: as a tree of reusable building blocks.
You will start by making sense of how Flutter works under the hood and how common starter pieces fit together in a solid project setup. From there, the course guides you through the foundation of most applications: a dependable page structure, top and bottom bars, and clear layouts. You will practice arranging elements with rows and columns, controlling spacing and alignment, and keeping designs readable on different screen sizes. By working through hands-on exercises, you will reinforce the mental model behind layout decisions instead of relying on trial and error.
As you progress, you will learn how interaction and state change drive modern app experiences. You will see how buttons trigger updates, why stateful widgets matter, and how to prevent the UI from getting stuck when data changes. You will also handle common real-world tasks like removing the debug banner, using containers for spacing and styling, and displaying both network and local images. When content grows beyond the screen, you will make it scroll smoothly and avoid overflow issues that frustrate beginners.
The course then moves into patterns you will reuse constantly: building lists efficiently, creating responsive layouts with expanded space, and navigating between pages using named routes. Finally, you will work with form input so your app can read what users type, display it back, and reset when needed. By the end, you will be ready to continue into larger Flutter projects with a clear grasp of layout, navigation, scrolling, and state-driven UI.
Course content
Video class: How Flutter Works - Flutter Tutorial for Beginners02m
Exercise: In Flutter, what does the Minecraft house example mainly illustrate about widgets?
Video class: MaterialApp06m
Exercise: Which pair of widgets were used to create a basic blank Flutter app structure?
Video class: AppBar05m
Video class: Bottom App Bar - Flutter Tutorial for Beginners09m
Exercise: Which Scaffold property is used to place a bar at the bottom of the screen?
Video class: Practical Exercise 1 - Flutter Tutorial for Beginners01m
Exercise: Which set of widgets best matches the described Flutter app layout?
Video class: Exercise Solution 1 - Flutter Tutorial for Beginners06m
Exercise: Which widget and property are used to center the title text in the app bar?
Video class: Column - Flutter Tutorial for Beginners03m
Exercise: How can you place multiple widgets one after another in the Scaffold body?
Video class: Row - Flutter Tutorial for Beginners02m
Exercise: In Flutter, what is the main difference between a Row and a Column in how they place their children?
Video class: Axis Alignment - Flutter Tutorial for Beginners05m
Exercise: Which Flutter widget is commonly used to place child widgets vertically one after another?
Video class: Buttons - Flutter Tutorial for Beginners09m
Exercise: What must you call when a button press changes a variable so the UI updates on screen?
Video class: Practical Exercise 2 - Flutter Tutorial for Beginners01m
Exercise: Which widget property is primarily used to move a child to the middle, end, and other positions in a Column or Row?
Video class: Exercise Solution 2 - Flutter Tutorial for Beginners09m
Exercise: Why must the widget be converted to a StatefulWidget in this exercise?
Video class: Debug Banner - Flutter Tutorial for Beginners01m
Exercise: How do you remove the debug banner in a Flutter app?
Video class: Container - Flutter Tutorial for Beginners05m
Exercise: In Flutter, what is the main difference between padding and margin in a Container?
Video class: Debug - Flutter Tutorial for Beginners02m
Exercise: In Flutter, which widget is commonly used as a container for positioning, padding, and decorating a single child?
Video class: Image network - Flutter Tutorial for Beginners03m
Exercise: Which widget is commonly used in Flutter to display an image loaded from an internet URL?
Video class: Single Child Scroll View - Flutter Tutorial for Beginners02m
Exercise: How can you fix a RenderFlex overflow error caused by content (like an image) being taller than the available screen space?
Video class: Flutter Tutorial for Beginners04m
Exercise: How do you display an image stored inside your Flutter app (offline) after adding it to pubspec.yaml?
Video class: Practical Exercise 3 - Flutter Tutorial for Beginners00m
Exercise: Which widget setup allows vertical scrolling for a Column containing an asset image and a network image?
Video class: Exercise Solution 3 - Flutter Tutorial for Beginners04m
Exercise: Which widget is used to make the screen scrollable when placing multiple images in a vertical layout?
Video class: Navigator - Flutter Tutorial for Beginners09m
Video class: Spacer05m
Exercise: In Flutter, which widget is used inside a Row to take up remaining space and help position IconButtons toward the center?
Video class: Center - Flutter Tutorial for Beginners06m
Video class: ListView04m
Exercise: In Flutter, what is the purpose of the leading and trailing properties in a ListTile?
Video class: Practical Exercise 4 - Flutter Tutorial for Beginners00m
Exercise: How do you navigate to a second page using a named route in Flutter?
Video class: Exercise Solution 4 - Flutter Tutorial for Beginners06m
Exercise: How do you navigate from the Home page to SecondPage using a named route in Flutter?
Video class: ListView.builder Flutter Tutorial for Beginners13m
Exercise: What is required to update the UI when increasing the number of items shown in a ListView.builder after pressing a button?
Video class: Expanded - Flutter Tutorial for Beginners04m
Exercise: What does the Expanded widget mainly do when placed inside a Column or Row?
Video class: Text Form Field - Flutter Tutorial for Beginners09m
Exercise: Which approach lets the app read what the user typed in a TextFormField and show it after pressing a button?
Video class: Practical Exercise 5 - Flutter Tutorial for Beginners01m
Exercise: In this exercise, what should happen when the Reset button in the bottom navigation bar is pressed?
Video class: Exercise Solution 5 - Flutter Tutorial for Beginners05m
Exercise: In Flutter, what must you add to a ListView.builder to prevent it from building an infinite number of items?