| 1 |
Start with Dart basics and environment setup |
You need Dart and Flutter tools ready before you code. |
Install Flutter SDK (official link), Set up IDE (VSCode/Android Studio), Try DartPad online exercises, Write sample print statements |
Screenshot: flutter doctor result, DartPad code link |
| 2 |
Learn basic Flutter widgets and layout |
Widgets are the building blocks of any app. |
Build app with Text and Button widgets, Use Column and Row for layout, Change widget styles, Try hot reload in IDE |
Basic app with styled text and button, Screenshot: app running |
| 3 |
Combine widgets, handle simple state, and debug |
State makes your app interactive. |
Create a counter with setState, Add multiple buttons, Use console to debug errors, Write a summary of findings |
Counter app with two buttons, Debug log with notes |
| 4 |
Learn navigation between screens |
Apps often need more than one screen. |
Add a new screen to app, Use Navigator to switch screens, Pass data between screens, Test navigation works |
Two-screen app demo video, Code with screen navigation |
| 5 |
Work with forms and user input |
Forms let users send information. |
Add a form with TextFormField, Set up basic input validation, Show error messages when needed, Save form data to a variable |
Form with working validation, Screenshot: error message in app |
| 6 |
Design app layouts and custom UI |
Good layout improves app look and feel. |
Use Card widget for task display, Build a task list layout, Align elements with Padding and Center, Document chosen colors and fonts |
Task list screen screenshot, Short style guide |
| 7 |
Fetch and display data in your app |
Apps often need to show real data. |
Try http package to fetch sample JSON, Display data in a ListView, Handle loading states, Log errors if fetch fails |
ListView that displays API data, Sample error message screenshot |
| 8 |
Refine app structure and write simple tests |
Good structure and tests make future changes easier. |
Split code into widgets and screens, Write unit test for a function (flutter_test), Document folder structure, Run test and fix failures |
App folder diagram, Passing test screenshot |
| 9 |
Save data locally and prepare main project features |
Local data makes your To-Do app useful. |
Use shared_preferences to save tasks, Test add/edit/delete of tasks, Plan app features (on paper), Update app to use local save |
Tasks saved after app restart, Feature plan document |
| 10 |
Add more app features and improve error handling |
Robust apps handle user mistakes and provide more tools. |
Add edit and delete task features, Show and clear validation errors, Add filter by task status, Test behavior with wrong inputs |
Working edit/delete in app, Error handling demo |
| 11 |
Write more tests and document your project |
Tests and docs make your work trusted and sharable. |
Write widget and integration tests (flutter_test), Collect app screenshots, Write Readme with setup steps, List app features and known bugs |
3+ passing tests, Readme file with screenshots |
| 12 |
Deploy your app and share your achievements |
Deployment proves your app works and is ready for jobs. |
Deploy app (Flutter web or emulator video), Create a GitHub repository, Share link with peers/mentors, Get feedback and plan improvements |
Public project demo (URL or video), GitHub repo link |