Flutter App Development (Intermediate and Advanced)


Course Overview

Flutter, leveraging the Dart programming language, empowers developers to craft exceptional cross platform applications. This comprehensive course is designed for individuals who are already well-versed in Flutter development, with the goal of enhancing their expertise by exploring advanced architectural concepts and industry best practices. 


Upon completing this course, participants will have honed the skills necessary to build resilient Flutter applications that can seamlessly scale to accommodate a substantial user base. Furthermore, they will acquire the knowledge to expand the reach of their applications beyond mobile devices, extending their capabilities to encompass web and desktop platforms.

Course Content

1. Intermediate Dart, UI Widget and Navigation

  • Advanced data types (Sets, Maps)
  • Dart libraries and packages
  • Asynchronous programming with Futures and Streams
  • Error handling with Try-Catch and Custom Exceptions
  • Higher-order functions
  • Closures and lambda expressions
  • Functional concepts like map, reduce, and filter
  • Using the async and await keywords for asynchronous programming
  • Stack Widget
  • Mediaquery, Layout Breakpoint
  • Gridview
  • Theming
  • GestureRecognizer: Swipe, pinch, and drag gestures
  • Bottom Navigation and TabBar
  • Drawer and Side Navigation
  • Named Routes and Route Generator
  • Deep Linking and Navigation Guards
  • Practical Navigation Exercises

2. State Management

  • Recap of Flutter widget tree and hierarchy
  • Introduction to state management in Flutter apps
  • Stateful vs. Stateless widgets
  • Hands-on: Building a basic counter app using setState
  • Understanding the Provider package
  • Setting up a Provider for state management
  • Managing app-wide state using ChangeNotifier
  • GetX State Management
  • Bloc State Management
  • Hands-on: Creating a to-do list app with State Management

3. HTTP Request, Authentication flow and Future builder

  • Introduction to asynchronous programming in Dart
  • Performing HTTP GET ,POST and PUT requests using the http package
  • Handling response data and error scenarios
  • Hands-on: Fetching and displaying data from an API using FutureBuilder
  • Exploring authentication methods and flows
  • Implementing user registration and login functionality
  • Handling authentication states with FutureBuilder
  • Hands-on: Building an authentication flow using API, token handling, FutureBuilder, and State Management

4. Firebase Integration, Device Integration

  • Overview of Firebase services: Authentication, Firestore, Storage
  • Setting up a Flutter project with Firebase
  • Integrating Firebase Authentication
  • Hands-on: Implementing Firebase Authentication in an app
  • Understanding Firebase Cloud Firestore
  • Reading and writing data to Firestore
  • Utilizing StreamBuilder for real-time data updates
  • Firebase Analytics, Cloud Messaging
  • Hands-on: Creating a real-time chat application with Firestore and StreamBuilder
  • Introduction to Flutter for the web
  • Adapting UI for the web platform
  • Building and deploying a Flutter web app
  • Hands-on: Converting a Flutter mobile app to run on the web

5. Multiplatform Flutter ( Web and Desktop )

  • Exploring Flutter’s capabilities for desktop platforms
  • Building a cross-platform desktop app with Flutter
  • Adapting UI for desktop screen sizes and interactions
  • Hands-on: Developing a simple desktop app using Flutter

Course Objective

  • Develop iOS and Android applications proficiently
  • Master Dart and the Flutter Framework
  • Create complete and feature-rich mobile apps
  • Build a portfolio of apps for job applications
  • Become a cross-platform developer for iOS , Android and Desktop application
  • Gain a competitive advantage as a Flutter mobile developer in the workplace