Programming in Dart: Fundamentals
Learn the fundamental building blocks of Google’s open source programming language, Dart, the language for Flutter development. Go from variables and data types to control flow, functions, collections, and defining your own Dart classes. By Joe Howard.
Who is this for?
This course is for beginning and experienced developers alike.
- Experienced developers will be able to quickly pick up Dart syntax and idioms.
- Beginning developers will learn about programming basics, from variables to functions and classes.
After watching this course, both beginning and experienced developers will be ready to dive deep into Flutter development.
Covered concepts
- Variables and data types
- Operators
- Nullability in Dart
- Control flow using conditionals loops
- Functions and arrow syntax
- Anonymous functions and closures
- Lists, sets, and maps
- Classes
- Constructors
- Static class members
- Class inheritances
- Abstract classes and interfaces
Part 1: Data Types & Operations
See an overview of topics covered in the course, set expectations for the course, and learn about why Google chose Dart as the language for Flutter.
Get introduced to the DartPad editor, use the main function and comments, and see how to run code in DartPad.
See how to create Dart variables, review the basic data types, learn about type inference, and learn about immutables and constants.
Practice working with variables, immutables, constants, and type inference through a hands-on challenge.
See how to use the Dart string type and string expressions and how to use Unicode values and emoji in Dart using runes.
Practice working with strings, string expressions, Unicode values, and runes through a hands-on challenge.
Learn about Dart arithmetic, comparison, and logical operators and see how to combine comparison and logical operators.
All types in Dart are objects, including primitive types. See how Dart handles null values and work with some null aware operators.
Review all that you've learned about Dart variables, data types, and operations, and get ready for the next part of the course.
Part 2: Control Flow
See an overview of the topics discussed in this part of the course on Control Flow, including conditionals, loops, and enumerations.
Learn about how to execute code conditionally using the if statement and if/else if/else statements.
See how to repeatedly execute a block of code with while and do while loops, and learn how to exit a loop early using the break statement.
Practice working with while loops, do while loops, and the break statement through a hands-on challenge.
See how to loop over a block of code a set number of times using for loops, and see how to jump early to the next iteration using the continue statement.
Practice working with for loops and then jumping to the next iteration early with continue through a hands-on challenge.
Get an introduction to creating custom types using enumerations, and see another way to control program flow using the switch statement.
Practice creating custom types with enumerations and also using the switch statement through a hands-on challenge.
Review all that you've learned about conditionals, loops, and enumerations, and get ready for the next part of the course.
Part 3: Functions
See an overview of the topics discussed in this part of the course on Functions, including function basics, anonymous functions, and closures.
See how to reuse code with functions, learn about function parameters and arguments, and see how to return values from functions.
Practice working with functions, parameters and arguments, and returning values from functions through a hands-on challenge.
Learn about functions without names called anonymous functions, and see how closures are blocks of code that capture surrounding values.
Practice working with anonymous functions and capturing values using closures through a hands-on challenge.
See a way to make your function code more concise and readable using the arrow syntax for one-line functions.
Practice working with one-line functions and the arrow function syntax through a hands-on challenge.
Review all that you've learned about functions, anonymous functions, and closures, and get ready for the next part of the course.
Part 4: Collections
See an overview of the topics discussed in this part of the course on collections, including lists, sets, and maps.
Learn about one of the more common collection types, lists, and see the distinction between fixed-size and growable lists.
See how to operate on lists by transforming them element-by-element, filtering them, and calculating a single value from them.
Practice working with lists, iterating over lists, and operating on lists using the where function through a hands-on challenge.
See how to store a collection of unique values using sets, compare sets and lists, and see how to work with set operations like intersection and union.
Learn about storing key-value pairs in Dart maps, see how to add and remove pairs, and see how to iterate over the keys in a map.
Practice working with sets and maps, including creating and adding elements, through a hands-on challenge.
Review all that you've learned about Dart lists, sets, and maps, and get ready for the next part of the course.
Part 5: Classes and OOP
See an overview of the topics discussed in this part of the course on classes and object-oriented programming.
Learn how to create your own custom Dart types using classes, add methods to classes, and see how to customize how instances of classes are printed.
See how to create instances of classes using special methods called constructors, and see the short-form of Dart constructors.
See how to create Dart objects and learn about reference types. Learn how to access object properties using getters and setters.
Practice defining your own types using Dart classes and creating objects through a hands-on challenge.
See how to add properties and methods to Dart classes that are shared amongst all instances of the class.
See how to define a hierarchy of classes that share the same base functionality using inheritance, and learn about the as and is keywords.
See alternative ways to define shared behavior among types using abstract classes, which cannot be instantiated, and interfaces.
Review all that you've learned in the Programming in Dart: Fundamentals course, and discuss where you should go from here.