Full Course

The Complete Dart Developer Guide

Learn Dart Programming in depth. Includes: basic to advanced topics, exercises, and projects. Fully updated to Dart 2.15.

Full Course

USD(VAT may apply)
  • 17 modules, totaling 10 hours of video
  • Lifetime Access + All Future Updates
  • Full Source Code
  • Free Dart eBook included
  • Premium Support on Discord
  • English Subtitles
  • Completion Certificate
  • 30 Day Money Back Guarantee

I can honestly say that Andrea's knowledge and guidance is top notch! He explains the principles well which helps you understand the concepts and structures within the Dart language.

This course is a great asset to anyone looking to improve their coding skills. Having Andrea by your side, you should feel privileged to have a mentor / coach of his caliber, who shares his knowledge in such an "easy to understand" manner. Thanks!

Andri De Jager

This is the best course you can get on Dart. Teaching was too good and on point, and even though I'm new to programming, I was never in a situation where I had to google things.

Talking about the teacher, he delivered everything as promised in the intro. I got all my doubts cleared and he's very responsive.

Thank you Andrea.

Bavan M Y

I would like to thank you very much Andrea for all your effort in helping me and others to learn about Dart, Flutter, and Firebase.

It literally changed my life because I started a new job as Flutter Developer and you gave me all the fundamentals to make this journey possible.

Alexander Michels

I love this course! it is extremely well organized and easy to navigate. The lessons, while brief, go into a lot of detail with very clear explanations.

This is a MUST HAVE reference for those who either have no experience with programming, and are looking to start out with the DART programming language; or those who are already familiar with other languages and want an easy to reference guide for the specifics of DART. 10/10 would recommend.

Daniel Mayett

Learn More

Course Overview

Covering all the fundamental concepts for Dart development, this is the most comprehensive and updated Dart course available online.

As a Google Developer Expert for Dart and Flutter, I'll teach you everything you need to know about Dart, even if you've never written a single line of code before.

This is a beginners course, but it goes well beyond the basics and teach you many advanced topics with clear diagrams and explanations.

Why is this important?

There are no shortcuts here. If you want to build complex Flutter apps, you'll need to master the Dart language.

This course will prepare you for this and guide you from the basics to the more advanced Dart features.

Course curriculum

What's inside?

10hrs of Video
10hrs of Video
Free Dart eBook
Free Dart eBook
Exercises and practical projects
Exercises and practical projects
Premium Support
Premium Support

The course is made of 17 modules, taking you through the most important language features.

Module 1


A quick tour of the main Dart language features, along with an intro to the Dartpad editor.

Module 2

Dart Basics

Write your first hello world program and get familiar with all the basics:

  • Basic variables and types
  • Working with strings
  • Initialization vs assignment
  • Dart operators

Module 3

Dart Type System

Learn about statically and dynamically typed languages and understand how type inference works in Dart:

  • Type inference
  • How and when to use the var, final, const, and dynamic keywords.

Module 4

Control Flow

Learn how to write programs that make decisions and run code based on some conditions:

  • if/else statements
  • while and for loops
  • break and continue keywords
  • switch statements
  • enums

Module 5

Project: Build a Command Line App

Install Visual Studio Code and the Dart SDK, and learn to build a simple command line app to play rock, paper and scissors.

Module 6


Learn how to work with all the collection types in Dart:

  • lists
  • sets
  • maps
  • collection-if, collection-for and the spread operator

Module 7

Project: Data Processing in Dart

Build a useful command line app to process CSV files in Dart, do some number crunching, and generate a report.

Module 8

Null Safety

Learn about all the most important Null Safety features:

  • nullable & non nullable types
  • flow analysis
  • the assertion, if-null, and conditional access operators

Module 9

Functions: Basics

Learn how to work with functions as essential building blocks to better organize your code and make it more reusable:

  • how to declare and use functions
  • named vs positional arguments
  • default values and required arguments
  • the arrow notation
  • the lexical scope
  • inner functions

Module 10

Functions: Advanced

Learn about advanced and effective ways of using functions to write better code:

  • anonymous functions and closures
  • passing functions as arguments to other functions
  • function types
  • functional operators such as forEach, map, where, and reduce
  • functions with generic arguments

Module 11

Classes: Basics

Learn how to work with classes as the foundation of object oriented programming:

  • how to create classes
  • regular, named, and const constructors
  • initializer lists
  • instance variables and methods
  • getters and setters
  • static class variables and methods
  • how to make things private

Module 12

Classes: Advanced

Learn about class inheritance and other advanced concepts that you'll need when building complex apps:

  • subclassing
  • super constructors
  • overriding methods
  • abstract classes
  • implements vs extends
  • the base Object class
  • equality & hashCode operators
  • the toString method
  • generics
  • difference between composition & inheritance
  • factory constructors
  • copying objects with copyWith
  • the cascade operator

Module 13

Project: Simple eCommerce

Use classes & functions to build a simple command line app that implements the business logic for an eCommerce flow: add items to a cart, view items & checkout.

Module 14

Mixins and Extensions

Learn how to use mixins and extensions more easily extend the functionality of existing types:

  • how to use mixins to go beyond single-inheritance (and what are their drawbacks)
  • how and when to use extensions to add functionality to existing types

Module 15

Error Handling & Exceptions

Learn how to deal with errors in your Dart programs:

  • assertions
  • built-in errors and exceptions in the Dart SDK
  • the try, catch, finally, throw, and rethrow keywords

Module 16

Asynchronous programming

Learn how to deal with asynchronous operations in Dart:

  • one-time asynchronous operations with Futures
  • async, and await
  • multiple asynchronous events with Streams
  • async* and yield
  • common Future and Stream-based APIs

Module 17

Project: Weather App

Build a simple command line app to fetch weather data using the MetaWeather API:

  • basic intro to REST APIs
  • how to create a weather API client with the Dart http package
  • how to parse JSON data
  • how to add robust error handling and deal gracefully with connection and API errors

And much more

The course comes with a complete GitHub page that includes all the course projects and exercises, along with their solutions.

You'll have access to 10 hours of content as well as many exercises. And I have even included a free Dart eBook.

This is a great package and by the end of this course you'll be comfortable with all aspects of the Dart Language and have a strong foundation that you can use to build complex Flutter apps.

Andrea is a very caring instructor. I am very satisfied with his method of teaching with explanations of what he is doing line by line.

It is a very well rounded course for a beginner like me to build up the concepts I need to continue in pursing Flutter. I have basic knowledge in OOP but this course teaches everything you need to get started.

Yong Yang Boon

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

Complete Dart Course

Get the Complete Dart Course

Full Course

USD(VAT may apply)
  • 17 modules, totaling 10 hours of video
  • Lifetime Access + All Future Updates
  • Full Source Code
  • Free Dart eBook included
  • Premium Support on Discord
  • English Subtitles
  • Completion Certificate
  • 30 Day Money Back Guarantee

Andrea clearly put a lot work into the material, and after completing solely this course, now I really feel like I now know the fundamentals of Dart and am ready to finally dive into Flutter with confidence!

Thank you again for this great course, I went through some of the lessons multiple times, but it was definitely worth it, and will surely revisit some of the topics if needed.

I love that all topics are separated into short videos, and that every second of every video is valuable (not wasting our time for a moment).


Wish I had taken this course before the Flutter course I completed to build a strong Dart foundation.

Would have made much of the concepts in Flutter much easier to understand.

Andrea provides these lessons in easily digestible 2-4 minute videos and moves in a logical sequence building upon each lesson learned.

Really well done.

Dan Van Damme

It could be my previous experience with writing code but DART explained by Andrea was smooth.

I never really understood OOP and I struggled in that area until I watched this course. I made sure I tried and completed every exercise even though it took me days.

Excellent course. Excellent Instructor, well knowledgeable and resourceful. Would totally recommend.

Wilfried Majaliwa

Wilfried Majaliwa

This is the most excellent course I have taken on Udemy (out of about 20 or so).... Absolutely fantastic delivery.

Andrea really knows how to deliver content so that it is clear and full of information.

I have taken 5 other flutter courses on Udemy and am so glad to go back to the basics with Dart. I should have done this course first. EXCELLENT!!!

Keith Ruskin Miller

30 day money back guarantee

I spent over 300 hours making this a high-quality course and I'm confident you'll get a lot of value out of it.

But the only way to find out if this course is right for you is on the inside, not on the outside. So you get on the inside and see if it’s true and valuable to you. Then, if it is, that’s when you decide to keep it.

But if you're not happy with it, for any reason, you can reach out within 30 days of purchase to get a full refund. All you have to do is go to courses@codewithandrea.com and tell me “gimme my money back” and you got it, and in short order. My response time is usually 24 hours.


Frequently Asked Questions

How long is the course?

The course includes 10 hours of in-depth content. 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.

Is the course up to date?

Not exactly. All language features up to Dart 2.15 are covered, including Null Safety.

However, Dart 3.0 introduced new features such as records, pattern matching, switch expressions, if-case statements, sealed classes, and class modifiers.

These features are not yet covered and this is reflected in the low price of the course.

Other topics that are missing are Dart Isolates and Dart FFI (Foreign Function Interface). I plan to cover these sometime in the future (either in this course or as part of an Advanced Dart course).

What will I learn in this course?

You'll learn about all the most important Dart language features, including control flow, collections, null & type safety, functions, classes, and asynchronous programming.

What are the course prerequisites?

This is a beginners course.

You can take it even if Dart is your first language. Some prior knowledge of simple data structures (lists, sets, maps) is beneficial but not required.

Is the source code included?

Of course! You'll get access to an official GitHub repo that contains the full source code for all the course projects, exercises, and solutions.

Are there assignments and projects?

Yes. I have included extra challenges and projects that you can take to practice the techniques covered in the course:

  • each exercise comes with clear instructions
  • you are encouraged to solve it by yourself
  • then I'll share a final working implementation, so that you can compare your solution with mine
  • all exercises and solutions are available on GitHub

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

What if I get stuck? Can I ask questions?

Yes. You can ask questions on the course Q/A in the Discord server. I answer most questions within 24 hours.

Where is the course hosted?

The course is hosted on my Teachable school.

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.

I'm a student / I can't afford the course / I live outside the US/EU / do you support Purchasing Power Parity (PPP)?

Unfortunately PPP is not supported by my course platform. If you'd like to request a discount, please fill this form.

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.

All you have to do is go to courses@codewithandrea.com and tell me “gimme my money back” and you got it, and in short order. My response time is usually 24 hours.

Do you offer team packages?

Sure thing! I offer team packages at discounted rates.

Email me at courses@codewithandrea.com for all the details.

I have another question!

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


Hello, I’m Andrea


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 and big companies.

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

By taking this course, you'll invest in yourself and fast-track your learning.