The Complete Dart Developer Guide Learn Dart Programming in depth. Includes: basic to advanced topics, exercises, and projects. Fully updated to Dart 2.12.
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!
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.
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, by guiding you from the basics to the more advanced Dart features. And it also includes many exercises and practical projects to help you consolidate your knowledge as you make progress.
The course is made of 17 modules, taking you through the most important language features:
A quick tour of the main Dart language features, along with an intro to the Dartpad editor.
Write your first hello world program and get familiar with all the basics.
Included: basic variables and types, working with strings, initialization vs assignment, Dart operators.
Dart Type System
Learn about statically and dynamically typed languages and understand how type inference works in Dart.
Included: how and when to use the var, final, const, and dynamic keywords.
Learn how to write programs that make decisions and run code based on some conditions.
Included: if/else statements, while and for loops, break and continue, switch statements and enums.
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.
Learn how to work with all the collection types in Dart.
Included: lists, sets, maps, and how to combine them, along with collection-if, collection-for, and the spread operator.
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.
Dart Null Safety
Learn about all the most important Null Safety features.
Included: nullable & non nullable types, flow analysis, the assertion, if-null, and conditional access operators.
Learn how to work with functions as essential building blocks to better organize your code and make it more reusable.
Included: how to declare and use functions, named vs positional arguments, default values and required arguments, the arrow notation, lexical scope, and inner functions.
Learn about advanced and effective ways of using functions to write better code.
Included: anonymous functions & closures, passing functions as arguments to other functions, function types, and functional operators such as forEach, map, where, and reduce.
Learn how to work with classes as the foundation of object oriented programming.
Included: how to create classes with regular, named, and const constructors; initializer lists; add variables and methods; use getters & setters; static class variables and methods, and how to make things private.
Learn about class inheritance and other advanced concepts that you'll need when building complex apps.
Included: 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.
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.
Mixins and Extensions
Learn how to use mixins and extensions more easily extend the functionality of existing types.
Included: 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.
Error Handling & Exceptions
Learn how to deal with errors in your Dart programs.
Included: assertions, built-in errors and exceptions in the Dart SDK; how to use the try, catch, finally, throw, and rethrow keywords.
Learn how to deal with asynchronous operations in Dart.
Included: how to perform one-time asynchronous operations with Futures, async, and await; how to process multiple asynchronous events with Streams, async* and yield; common Future and Stream-based APIs.
Project: Weather App
Build a simple command line app to fetch weather data using the MetaWeather API.
Included: basic intro to REST APIs, how to create a weather API client with the Dart http package, how to parse JSON data, and how to add robust error handling and deal gracefully with connection and API errors.
All the above will give you a strong foundation that will become essential once you start building real Flutter apps.
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.
I designed this course to be a step-by-step guide and a reference that you can use to explore specific topics in depth.
Are you new to Dart and programming in general? Then this is a great place to start your coding journey and you can follow the course from beginning to end.
Do you already have some experience or want to fill some gaps in your knowledge? Then you can jump right into the sections that are most relevant.
The course also comes with a complete GitHub page. This includes all the course projects and exercises, along with their solutions.
By buying this course 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.
- you'll 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.
Get the Complete Dart Developer Guide
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 fully updated?
Sure thing! All language features up to Dart 2.12 are covered. Dart 2.13 only introduces some minor changes that are not covered.
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.
Are there any language features that are not included?
The main 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 are the course prerequisites?
This is a beginners course.
You can take the course 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. The course includes premium support on Slack and I aim to answer all questions within 24 hours.
Where is the course hosted?
The course is hosted on my Teachable school.
If you prefer, you can also purchase it on Udemy using this link (coupon code included).
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 and I'm already offering this course with a big discount. If you're a student you can email me with your student ID and I'll see what I can do to help.
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 firstname.lastname@example.org and I'll reply within 48 hours.
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. This course will help you build a strong foundation and become more confident with the Dart language.