Flutter app development tutorials by Andrea Bizzotto

Flutter Animations Masterclass - Full Course

Build a completely custom habit tracking application.

Flutter animation APIs are very powerful. Learn how to use them to delight your users and make apps that stand out, just like this one:

Not convinced? Here's an interactive demo showing what you'll build (Pssst. it's made with Flutter web):

Streaks App Clone. Note: try this on desktop if it doesn't work on mobile.

This project is inspired by the Streaks app - one of the top health & Fitness apps on the App Store (and also an Apple Design Award winner).

This app combines a very slick UI with custom animations to create a unique user experience.

And you know what? With Flutter you can truly build beautiful UIs, and my goal for this course is to show you how. I'll teach you how to build a beautiful app with complex animations, production-level code and a strong focus on architecture.

  • ⭐️⭐️⭐️⭐️⭐️

    Andrea is an excellent instructor and developer. Very thankful he takes the time to create these courses and maintain his YouTube tutorials.

    The way Andrea codes reveals a lot of best practices, good app architecture, and interesting techniques; his source code is very clean and logical.

    In my opinion, this gives him a unique advantage versus other online instructors who write code to illustrate a point but often shortcuts are taken or it is not production quality.

    There are more intermediate level tips I don't see other devs covering. Thanks so much Andrea!!

    Niven Shah

What's inside

The course is made of 10 independent modules, each with a specific learning objective.

  • Module 1

    Intro and Implicit Animations

    Getting started:

    • A fun game with Implicit Animations!
    • Introduction to Animations in Flutter
    • Implicit Animations with examples
    • Under the hood: Duration and Curves
    • TweenAnimationBuilder and Tweens
  • Module 2

    UI Challenge: Stopwatch app

    Learn about the foundations of Flutter's animation framework and build a completely custom UI using:

    • Ticker and TickerProvider
    • Matrix Transforms
    • Stacks, LayoutBuilder & other layout widgets
  • Module 3

    Habit Tracker App Overview

    Overview of the starter project for the Habit Tracker app:

    • Colors, fonts, assets, and required packages
    • Project structure & linting rules
    • Common model and widget classes
  • Module 4

    Explicit Animations

    How to build a custom task completion UI using:

    • AnimationController
    • AnimationBuilder
    • Custom Painters
    • Gesture Detectors
  • Module 5

    Local Data Persistence with Hive

    How to read and write data to local storage:

    • Introduction to Hive
    • Creating custom model classes
    • Type adapters and code generation
    • Creating a domain-specific API class for data persistence
  • Module 6

    State Management with Riverpod

    How to access dependencies and manage state:

    • Creating and overriding Providers
    • Rebuilding widgets and watching data changes with Consumer
    • Performing state changes with Riverpod
  • Module 7

    Page Flip Animation

    Diving deeper with animations to build a custom page flip effect:

    • AnimationController (advanced)
    • 3D Matrix Transforms
    • Custom interactive transitions
  • Module 8

    More Explicit Animations

    More eye-candy with custom UI and animations:

    • Synchronized slide in/out animation
    • Theme selection and persistence with Hive
    • Working with Tweens to animate Opacity and Scale
    • Staggered Animations
  • Module 9

    Advanced Theming

    How to apply custom UI themes to the app and animate between them:

    • Basic theming with Theme & InheritedWidget
    • Light and Dark mode
    • Creating a custom app theme
    • Theme animation with AnimatedTheme and ImplicitlyAnimatedWidget
  • Module 10

    Add and Edit Tasks

    Functionality to add, edit and delete tasks:

    • Custom Modal Bottom Sheets
    • Slivers
    • Custom TextFields
    • ListViews
    • Icon selection

And much more...

Custom animations are great. But we all know that real apps are made of more than just UI.

So we will also learn about app architecture, local data persistence, state management, and how to write maintainable code following best practices.

You will not learn about animations in isolation. Instead you'll see how everything fits together to create a real app.

Course Structure

Each module has a specific goal and is composed of three parts:

  • Starter Project

    At the beginning of each module I'll walk you through a starter project that includes all the code, assets and resources that we'll use.

  • Technical Planning

    Before diving into the code, we'll try to figure out the best way to build the features that we need (just like professional software developers do).

  • Implementation

    I'll guide you through an optimal implementation that I've refined after trying many different solutions and evaluating their tradeoffs.

Along the way, you will learn about the best techniques for solving various animation problems (and believe me, we'll encounter many UI & animation challenges).

This is not the kind of course where you just watch me typing in some code. Instead, I will always explain what we're going to build and why, and then how.

By the end of the course, you'll be confident working with animations in Flutter and you'll have a completed project to show for it.

  • ⭐️⭐️⭐️⭐️⭐️

    Up-to-date content, didactic instructor, good support community on Slack, additional resources, tutorials and optional videos with the latest advances in Flutter.

    Concise and direct to the point, with a huge number of diagrams. A colossal amount of work to simplify our learning.

    Fabian Sosa Escalada

Who is this course for?

This is not a beginners course.

To make the most of this, you need to have a good understanding of the Dart Language (my Complete Dart Course can help with that). I'll assume that you're already familiar with StatelessWidgets and StatefulWidgets, common layouts (Row, Column, Stack), and the foundations of state management in Flutter.

However, it's ok if you're completely new to animations in Flutter. I will explain how animations work from the ground up, and include additional resources that you can use to fill any gaps.

If you are a Flutter developer looking to build beautiful apps and take your skills to the next level, this course is for you. And I believe that it is worth a lot more than the price of admission.

Frequently Asked Questions

  • When will the course be available?

    I'm aiming to open the course for early access in May. The full course should launch in June.

  • How long is the course?

    The course will include between 6 and 8 hours of content (more details to follow). I know you're busy and I want to give you the best value per minute watched, so I'll focus on quality content and code.

  • What will we build in this course?

    In the first two modules we will learn about the basics of animations in Flutter and get some practice by completing a UI challenge.

    Then we will build a complete habit tracking app with custom UI & animations, and learn about state management, app architecture, and much more.

  • Will we build the Habit Tracking app from scratch?

    No, but this is a good thing. The finished project is over 2,500 lines of code and it would take a long time to complete the course by building everything from scratch.

    Instead, I will include a starter project at the beginning of each module and we will focus on building the most interesting features, with great attention to detail. Each module will include a walkthrough of all the code that is provided so you can more easily find your way.

  • Will we build all the features from the Streaks app?

    No. The Streaks app is a complete product with a ton of features that were developed over many years. Instead, we will focus on the things that make this app unique and the skills that you can carry over to other projects.

  • What kind of animations will I learn about?

    You will learn about all the core Flutter animation APIs and combine them to build a real-world app. With this strong foundation you'll be able to add animations in your own apps and better understand how to use 3rd party packages such as simple_animations.

  • Will we use Flutter 2?

    Of course! The entire course uses Flutter 2 with Null Safety. I'll be keeping it up to date with the latest changes, so you don't have to worry about outdated content.

  • What are the course prerequisites?

    This is not a beginners course.

    To make the most of this, you need to have a good understanding of the Dart Language (my Complete Dart Course can help with that). I'll assume that you're already familiar with StatelessWidgets and StatefulWidgets, common layouts (Row, Column, Stack), and the foundations of state management in Flutter.

    However, it's ok if you're completely new to animations in Flutter. I will explain how animations work from the ground up, and include additional resources that you can use to fill any gaps.

  • Will the source code be on GitHub?

    Of course! You'll get access to an official course GitHub repo with all the source code and additional materials.

  • Are there assignments and projects?

    The short answer is no, however:

    • each module has clearly defined goals and we will do some technical planning before diving into the implementation details.
    • I will encourage you to try implementing certain tasks on your own.
    • you can experiment and try different approaches before following my solution. This way you'll get even more value out of the course.

    Remember that trying things on your own is a great way to learn.

  • What if I get stuck? Can I ask questions?

    Yes. The course includes premium support on Slack and I aim to answer all questions within 24 hours.

  • What is the course price?

    I'm still working this out and I'll share more details later on.

    Once you buy the course, you'll have lifetime access to all existing and future content.

  • Where will the course be hosted?

    I plan to host the course on my Teachable school.

    This is a premium course and I will not offer it for a discounted price on Udemy.

  • Will I get a completion certificate?

    Sure do! Once you complete the course this will be issued to you automatically.

  • What is my teaching style?

    My courses are very practical, clear, and concise - just like all the tutorials on my YouTube channel. I always explain what we're going to build and why, and then how. You'll leave this course with a deeper understanding of how things work and will be able to apply this knowledge to your own apps.

  • What if I don't like the course?

    The course comes with a 30 day money back guarantee. If you're not happy with the course, for any reason, you can reach out and I'll issue a full refund.

  • I have another question!

    Sure - email me at courses@codewithandrea.com and I'll reply within 48 hours.

About Me

Andrea Bizzotto

My name is Andrea, I'm a Flutter GDE and I've been writing code professionally for over 12 years. I've been a mobile app developer since 2012, working for startups, agencies, and big companies.

With my Flutter tutorials and courses, I've helped thousands of students become better developers.

I know what it takes to become a great Flutter developer. I can't wait to share this course with you and help you fast-track your learning.