Building Mobile Apps with Flutter, Firebase, and Provider Online Course
Building Mobile Apps with Flutter, Firebase, and Provider Online Course
This course goes beyond basic framework concepts by teaching you how to build a real-world application. Starting with the fundamentals of Flutter and Dart, you'll develop a solid foundation to create the iOS Reminders app. You'll learn to enhance navigation, pass data between screens, and structure your code using Dart classes. The course covers email authentication with Firebase Auth, integrates Firebase Firestore for real-time data, and customizes a light/dark theme. Additionally, you'll manage app state using the Provider package, recommended by Google. By the end, you'll have the skills of an intermediate Flutter developer.
Key Benefits
- Establish a strong foundation in Flutter, advancing to an intermediate development level.
- Develop a fully functional, cross-platform app for both iOS and Android.
- Gain hands-on experience with Firebase Authentication for secure user authentication and Firebase Cloud Firestore for efficient database management.
Target Audience
This course is ideal for individuals looking to start their journey with Flutter, as it is designed for beginners and does not require any prior programming experience.
Learning Objectives
- Master the foundational concepts of Flutter and Dart to establish a strong development base
- Develop the full layout of the iOS Reminders app from start to finish
- Implement email authentication in the app using Firebase Auth
- Integrate Firebase Firestore for real-time database functionality
- Manage the app's state globally with the Provider Package
- Design and implement a customizable light and dark theme for the app
Course Outline
The Building Mobile Apps with Flutter, Firebase, and Provider Exam covers the following topics -
Module 1. Course Introduction
- What is Flutter?
- How to use the project files provided
- Guide to installing Flutter on your system
Module 2. Flutter Project Structure and Basics
- Understanding project organization
- Creating the first Stateless Widget
- The significance of MaterialApp
- Understanding BuildContext and overriding it
- Why MaterialApp and Scaffold are essential
Module 3. Building the iOS Reminders App - Flutter Fundamentals
- Overview of the iOS Reminders App project
- Implementing the Navigator for navigation
- Customizing the AppBar and Theme settings
- Implementing a Dark Theme for the app
- Layouting with Columns and Rows
- Utilizing the Flutter Inspector for debugging
- Using the Expanded widget for flexible layouts
- Setting up footer buttons and adding padding
- Creating a dynamic grid with GridView.count
- Applying BoxDecoration and customizing colors
- Structuring app data using Classes and Constructors
- Working with categories and displaying them
- Understanding Nullable and Non-Nullable Variables
- Using Final and Const for immutability
- Creating reusable Category Widgets
- Refactoring and enhancing the app’s functionality
Module 4. Converting the App to Stateful Widgets
- Introduction to Stateful Widgets
- Setting up ListView and customizing with ListTile
- Implementing reordering functionality for the list
- Understanding UnmodifiableListView in Category Class
- Adding toggleable visibility with a Checkbox
- Exploring Animated ListView and GridView for dynamic interfaces
Module 5. Enhancing the App with a List
- Building the AddList Modal for input
- Implementing icon selection functionality
- Managing themes with Theme.of(context)
- Customizing form fields and models for colors and icons
- Retrieving and managing text with TextEditingController
- Refactoring the app theme for consistency
- Fixing issues related to scrollable AddListScreen
Module 6. State Management and Provider Integration
- Designing the Add Reminder Screen
- Integrating category selection and ListTile elements
- Managing text input through Text Controllers
- Lifting state up for efficient data handling
- Introduction to Flutter’s Provider package for state management
- Setting up and configuring the Provider
- Managing TodoList state with ChangeNotifier and Provider
- Enabling Swipe-to-Delete functionality for tasks
- Addressing scroll issues on the Home Screen
Module 7. User Authentication with Firebase and Asynchronous Programming
- Setting up Firebase for both iOS and Android platforms
- Troubleshooting common Firebase integration issues
- Initializing Firebase using Dart’s async-await features
- Building asynchronous UI with FutureBuilder
- Creating sign-in and sign-up forms for user authentication
- Customizing app appearance with Lottie animations
- Streamlining the authentication UI
- Implementing user sign-up and sign-in functionality in the AuthService class
- Enabling persistent user login with StreamBuilder
Module 8. Backend Integration with Firebase Firestore for Data Management
- Introduction to Firebase Firestore and its capabilities
- Storing and managing TodoList data in Firestore
- Using named constructors for the TodoList class
- Retrieving and displaying data from the Firestore database
- Deleting tasks from Firestore efficiently
- Creating and managing Reminder model classes
- Selecting categories and dates for reminders
- Adding, viewing, and deleting reminders from the database
- Implementing multiple providers for complex state management
- Adding Inkwell for tapping and viewing specific reminders
- Enhancing the app with dynamic reminder viewing options
- Refactoring and optimizing the DatabaseService class for cleaner code and smoother performance