
Install Android Studio on Windows, install platter plugin and SDK, set PATH and JAVA_HOME, run platter doctor, accept licenses, then create a new platter project with Flutter SDK.
Connect a real device to Android Studio by enabling developer options, USB debugging, and verify apps over USB. Create emulators via Device Manager and ensure hypervisor driver to run projects.
Discover the flutter folder structure, from the dot idea and android or ios folders to the essential lib directory, test folder, and configuration files like respect.yaml and dot git ignore.
Create a Flutter project from scratch by editing main.dart, defining the main method and runApp, and wiring a MyApp class that returns a MaterialApp with a home page.
Explore the plotter architecture in Flutter, from the main method and run app to myApp, Material app, and the scaffolded first page with the app bar and body.
Learn how the material app widget functions as the core Flutter component, enabling dark theme data, debug banner control, and routing through home or initialRoute with a descriptive title.
Demonstrates how the scaffold widget provides app bar, body, bottom navigation bar, drawer, and floating action button, and how to customize background color and body content in a Flutter page.
Explore the app bar as the top component with a title, actions, and styling options in Flutter. Adjust background color, elevation, and shape, and add action icons.
Learn how to implement a Flutter bottom navigation bar with 2–5 items, handling taps to switch views using current index and setState, and customize selected and unselected item colors.
Build a Flutter navigation drawer with a Material app bar and a user accounts header showing name, email, and avatar. Include home, profile, and notification items; close with Navigator.pop.
Master the Flutter text widget to display single or multiline strings within layout constraints. Learn to control alignment, direction, overflow, lines, and text style such as color, size, and weight.
Explore how to build rich, multi-styled text in Flutter using the rich text widget and text spans, enabling inline styling and complex UI elements.
Explore the Flutter container widget, a parent that manages width, height, padding, margin, border, and background color for its child widgets. Apply box decoration, shapes, and centered text for layouts.
Explore how the row widget arranges children horizontally with main axis alignment and cross axis alignment. Wrap children in an expanded widget to fill space, and use containers with padding.
Discover how the column widget arranges children vertically, controlled by main axis alignment and cross axis alignment. Compare it with row and learn concepts like space between and space around.
Learn to detect gestures in Flutter with GestureDetector by wrapping a widget and using on tap to trigger actions. Explore tap, long press, double tap, drag, and zoom interactions.
Implement a Flutter date picker, show the date picker, and capture a selected date as a nullable DateTime. Configure initial, first, and last dates and handle it asynchronously.
Master Flutter's time picker by implementing a time picker widget, invoking showTimePicker with context and initial time, and updating state with the selected TimeOfDay.
Build a Flutter form using text form fields with a global key for validation, email and password controllers, and an elevated submit button within a scaffold.
Explore how the Flutter TextField widget collects user input with input decorations, borders, labels, and hints, and configure controllers, focus nodes, and keyboard types for forms and search.
Learn how to implement alert dialogs in Flutter using showDialog and the AlertDialog widget. Configure a dialog with a title, content, and actions, and close it using Navigator.
Learn to implement a modal bottom sheet in Flutter using context and builder, set height and content, and configure isDismissible, drag, and barrier color.
Explore how a single child scroll view enables scrolling of a single widget to fix overflow, control scrolling with a controller, and customize direction, fading, and scroll physics in Flutter.
Explore the Flutter pageview widget to navigate between multiple pages. Configure scroll direction, reverse, and snapping, and manage state with a page controller and current index.
Discover how to build scrollable lists in flutter with ListView, including the default constructor and variants like ListView.builder, ListView.separated, and ListView.custom, and customize with scrollDirection, controller, physics, shrinkWrap, and reverse.
Learn how to use the ListView.builder constructor to create a repeating list, using itemCount and itemBuilder, with a practical example building 20 items inside a scaffold card.
Learn to implement the ListView separated constructor in Flutter to generate a list of widgets with separators, with a compulsory itemCount and a separator builder.
Utilize Flutter's grid view builder to display a dynamic two-dimensional grid. Set the grid delegate with fixed cross axis count and spacing, and build items for a scrollable grid.
Explore navigation and routing in Flutter, learn how routes define the app workflow, and practice moving between pages with material page route and navigator push and pop.
Explore the navigator class for Flutter routing by pushing and popping routes with context and material page route, illustrated by a two-screen example that includes going back.
Discover how name route navigation works in Flutter by using the material app root and navigator.pushNamed to move between home and contact screens.
Learn how to pass data between screens in flutter using constructor and modal route methods, with practical examples of navigator push, material page route, and route arguments.
Learn to implement a Flutter tab bar widget with a default tab controller, two tabs (home and contact), and synchronized tab content in a scaffold.
Learn the basics of SQLite, a lightweight serverless relational database for mobile apps, and how to set up a platter app with a database helper, create table, and open database.
Learn to perform a sqlite create operation in a flutter todo app by implementing a create item method with title and description, using replace conflict, and bottom sheet for input.
Learn to perform a read operation in a Flutter SQLite database by fetching all rows from the items table, ordered by id, via a get items method.
Learn to perform an SQLite update in a flutter app by implementing an update item method in the database helper, building a data map with id, title, and description.
Execute a SQLite delete operation in a Flutter app by passing an id to the delete method, using await and try-catch, then show a snack bar and refresh items.
This comprehensive course will teach students how to build high-quality, responsive mobile applications using Flutter - Google's UI toolkit for building natively compiled applications for mobile, web, and desktop from a single codebase.
Throughout the course, students will learn the fundamentals of Flutter development, including how to set up their development environment, build user interfaces, handle user input, manage state, and work with APIs. They will also learn how to incorporate third-party packages and plugins to enhance the functionality of their applications.
The course is designed to be hands-on and project-based, with students building a range of applications throughout the course to put their newfound skills into practice. By the end of the course, students will have built several fully functional mobile applications, including a weather app, a social media app, and a music player app.
This course is suitable for beginners with little to no experience in Flutter development, as well as experienced developers who want to enhance their skills and build high-quality mobile applications more efficiently.
Course Outline:
Introduction to Flutter Development
Introduction to Flutter
Setting up the development environment
Creating a new Flutter project
Understanding the Flutter architecture
Building User Interfaces
Introduction to widgets
Creating a layout using widgets
Handling user input with widgets
Building responsive layouts
Managing State
Understanding state in Flutter
Using setState() to manage state
Implementing streams to manage state
Working with APIs
Introduction to APIs
Making API calls in Flutter
Parsing JSON data
Error handling
Incorporating Third-Party Packages and Plugins
Introduction to third-party packages and plugins
Adding packages to a Flutter project
Using plugins to enhance functionality
Building Mobile Applications
Building a weather app
Building a social media app
Building a music player app
Conclusion
Review of course content
Next steps for further learning and development.
Course Requirements:
A basic understanding of programming concepts (e.g., variables, functions, control structures)
Familiarity with a programming language (e.g., JavaScript, Python, Java)
A computer running Windows, macOS, or Linux
An internet connection.