Skip to main content

Roadmap

Through this series of lectures, we will cover the following topics:

Day-1

Session 1: Dart basics

- Variables
- Types
- Functions
- Operators
- If-else
- Loops
- Lists, Map
- `map`, `filter`, `reduce`

Session 2: Flutter Basics

- Creating a new Flutter project
- The structure of a Flutter app
- The role of the pubspec.yaml file
- Introduction to Widgets and Elements
- Material Widgets vs Cupertino Widgets
- Scaffold
- Container, SizedBox, Padding, Center
- Row, Column
- Basic widgets such as text, image, and button widgets
- Styling widgets with themes and styling properties
- Creating the login/signup screens using basic widgets

Day 2:

Session 1: Flutter Widgets and Navigation

- Flutter material design widgets, including the Scaffold widget and its components
- Navigation and routing in Flutter
- Creating a navigation stack with the Navigator widget
- User input and forms
- Implementing text fields and other form widgets
- Validation and error handling in forms
- Building the profile creation screens using the material design widgets

Session 2: Introduction to Riverpod

- What is Riverpod?
- Riverpod architecture
- Setting up Riverpod for state management
- Implementing Riverpod for the login/signup and profile creation screens
- Using Consumer widgets to access the state from the providers
- Understanding how ProviderScope works
- Creating a custom provider
- Using the context in the Provider

Day 3:

Session 1: Rest APIs with Flutter

- Working with RESTful APIs in Flutter
- Making HTTP requests and parsing JSON data
- Handling network errors and exceptions
- Creating the API endpoints for the app backend
- Using the Dio package for making HTTP requests
- Creating a custom client for making requests
- Parsing JSON data from APIs using Dart's built-in convert library
- Handling network errors and exceptions with try/catch blocks
- Session 2: More on Flutter Widgets and UI

Session-2: Advanced Flutter widgets

- Customizing Flutter widgets
- Themes and styling
- Building the student list screen with card widgets
- Displaying data in a ListView widget
- Creating custom widgets and extracting them into reusable components
- Advanced topics such as animations, layouts, and constraints

Day 4:

Session 1: Flutter and Databases

- Working with local databases in Flutter
- CRUD operations with SQLite
- Handling database errors and exceptions
- Saving and retrieving user profiles and student data from local database
- Setting up a SQLite database for the app
- Creating a database helper class for performing CRUD operations
- Saving and retrieving data from the database using Dart's async/await syntax
- Handling database errors and exceptions with try/catch blocks

Session 2: Advanced Riverpod

- Advanced Riverpod concepts
- Combining multiple providers
- Stream providers
- Family providers
- Using Riverpod with other Flutter libraries
- Using the AsyncValue object to handle asynchronous data
- Using the Riverpod package for dependency injection
- Adding more providers to handle different parts of the app state

Day 5:

Session 1: Flutter Animations

- Animations in Flutter
- Animated containers and widgets
- Tween animations and physics-based animations
- Adding animations to the app screens
- Creating custom animation widgets
- Using the AnimationController and Animation classes
- Creating reusable animation widgets
- Animating widgets based on user input

Session 2: Project Showcase and Q&A

- Demo the completed app
- Discuss best practices and design decisions