Full Stack App Development with Flutter and Firebase

This curriculum focuses on a comprehensive and complete list of courses that will provide you with the necessary skills to become an end-to-end, full-stack application developer, delivering highly engaging, beautiful, natively compiled, multi-platform user interfaces using the Flutter framework, backed by a robust, scalable, serverless backend on top of the Google Cloud via Firebase, while building a real-life application in the process.

These skills will expose you to the latest and greatest when it comes to multi-platform application development, using the Flutter framework, which allows you to deploy to six distinct platforms (Windows, iOS, macOS, Web, Android and Linux) with a single code base using the Dart programming language. 

Firebase will allow you to build robust backends on top of a serverless architecture backed by the Google Cloud, which includes a scalable, distributed, cloud-first NoSQL database like Cloud Firestore to feed data to your app, a production-grade authentication service via Firebase Authentication to provide security to the users of your app, a secure global content delivery network such as Firebase Hosting to host your app, and much more.

No prior experience is necessary to sign up. Courses are equally beneficial for beginners as those with previous expertise. Acquire real life skills, learn a comprehensive suite of essential topics and best practices, and join a welcoming community of techies for continued growth and collaboration after the courses end.

Our instructors are certified experienced professionals in the field of mobile, web, desktop and cloud development, and passionately involved in growing the local tech community


Bootcamp Overview:

This bootcamp is divided into two sections: Front End Development (Part 1) and Backend Development (Part 2). Users will develop a full-blown application end-to-end, first focusing on the user experience of the application using hard-coded data, then they will connect it to a backend hosted on the Google Cloud via Firebase. They will also jump back and forth between the frontend and the backend as needed, as in a real-life project.

Full Stack App Dev Part1: Front End Development

  • Introduction to the Full Stack App Development Bootcamp: Objectives, App Architecture, UX
    • This course includes:
      • Setting up your environment for Flutter Development: Install all dependencies and tools
      • Defining the mockup used for the application to be developed
      • Gathering the requirements for the application to be developed
  • Front End Development: Introduction to Flutter
    • This course includes:
      • Introduction to Flutter as an open-source toolkit supported by Google to develop beautiful, natively-compiled multi-platform experiences with a single codebase. At the same time, users learn Dart - the language used to develop in Flutter.
      • How does Flutter work: users will learn the capabilities of Flutter, how it works internally as well as learn about one of the core components of Flutter, the Skia 2D graphics library used to paint every pixel on the screen.
      • Setting up your project: users will set up their project structure to promote good code organization and a clean architecture
      • Learn the core widgets: we’ll start building the scaffolding of this application while users learn the basic core widgets on which this app will be built.
  • Building the App UI Layout: 
    • This course includes:
      • Deep dive into Flutter: StatelessWidgets vs StatefulWidgets
      • Creating your own custom widgets, as well as achieving widget composition to build new widgets from other widgets
  • State Management in Flutter:
    • Learn about State Management in Flutter and what is used for: we’ll use the Provider package to maintain and persist state in our application across widget rebuilds. Users will learn the following:
      • Using StatefulWidgets and the setState method to trigger changes
      • Using ValueNotifier and ValueListenableBuilder
      • Sharing data between widgets
      • Triggering rebuilds on one widget from another widget
      • "Lifting the State" using Provider
      • Leveraging more than one service using MultiProvider
      • Communication between provided services
      • Listening to changes and rebuilding using ChangeNotifierProvider and ChangeNotifier services in conjunction with Consumer widgets
  • Fetching Network Data in Flutter
    • This course is a preamble of the Firebase section where we’ll discuss connecting to cloud data, and it includes:
      • Basic REST API overview
      • Flutter’s ability to fetch network data by connecting to a public REST API
      • Consume data asynchronously from an external REST API
      • Map data retrieved and display it on the UI using multiple strategies
      • Using Futures in Flutter
      • Using Completers in Flutter

Full Stack App Dev Part2: Backend Development

  • Introduction to Firebase and the Google Cloud
    • This course includes:
      • What is the Google Cloud: features and capabilities
      • What is Serverless: benefits
      • Firebase as a Serverless Solution running on the Google Cloud
  • Firebase as your App Backend:
    • This course includes:
      • Firebase features to leverage in your Flutter apps
        • Authentication
        • Cloud Firestore
        • Hosting
  • Firebase Authentication:
    • This course includes:
      • Authenticating your users using Firebase Authentication
        • Using third party services such as Google, Facebook, Twitter, Github, etc.
  • Firebase Cloud Firestore
    • This course includes:
      • Introduction to Cloud Firestore as a serverless NoSQL database
      • Data structure of Cloud Firestore: Documents and Collections
      • Performing CRUD operations against Cloud Firestore
  • Firebase Hosting
    • This course includes:
      • Introduction to Firebase Hosting as a secure hosting solution for your Flutter web apps
      • Using the Firebase CLI for deploying your Flutter Web Apps
      • Using preview channels as staging environments prior to going live (production)
  • Debugging your Firebase backend while your apps are in production
    • This course provides a brief introduction to:
      • Firebase Crashlytics: how to integrate it in your Flutter apps
Who Is This Course For? 

Who is this Course For?

  • Anyone who wants to learn a modern UI framework like Flutter for developing multi-platform experiences using a single code base
  • Individuals who want to learn about cutting-edge technologies and leveraging a state-of-the-art cloud infrastructure such as the Google Cloud
  • People who want to learn to build reliable, robust, serverless infrastructure to power your Flutter apps


30 weeks

Basic pre-requisite: student should at least be exposed to some level of coding, even if its HTML and Javascript, otherwise I’ they’d have to have some basic programming knowledge, not necessarily fully object-oriented, but some nothings would be a plus