Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bizz84/dart-course-materials
Code, Exercises & Syllabus for my Complete Dart Course
https://github.com/bizz84/dart-course-materials
dart flutter
Last synced: 2 days ago
JSON representation
Code, Exercises & Syllabus for my Complete Dart Course
- Host: GitHub
- URL: https://github.com/bizz84/dart-course-materials
- Owner: bizz84
- License: mit
- Created: 2020-07-27T13:15:32.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2022-12-25T03:46:16.000Z (about 2 years ago)
- Last Synced: 2024-12-22T22:05:51.014Z (9 days ago)
- Topics: dart, flutter
- Language: Dart
- Homepage: https://nnbd.me/dart
- Size: 273 KB
- Stars: 351
- Watchers: 18
- Forks: 187
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Dart Course | Code With Andrea
This repo contains all the exercises and solutions from my [Dart Course](https://nnbd.me/dart).
![Course Contents](course-contents.png)
# Course Syllabus
## 1. Introduction
1. Making the most of this course
2. Introduction to Dart
3. Introduction to Dartpad## 2. Dart Basics
1. Section Intro
2. The `main` method
3. Hello world
4. Variable declaration and initialization
5. Basic types
6. **Exercise**: printing variables
7. String Concatenation & Interpolation
8. **Exercise**: String interpolation
9. String Escaping
10. Multi-line strings
11. Basic String operations: uppercase and lowercase
12. Initialization vs Assignment
13. **Exercise**: Lowercase and uppercase strings
14. Finding and replacing strings
15. Conversions between types
16. Arithmetic operators
17. **Exercise**: temperature conversion
18. Increment & decrement operators
19. Logical & Relational operators
20. Ternary conditional operator
21. Hex format, bitwise & shifting operators
22. Comments
23. Expressions & statements## 3. Dart type system
1. Section Intro
2. Static vs Dynamic Languages
3. Type inference with `var`
4. The `final` keyword
5. The `const` keyword
6. **Exercise**: `var`, `final` and `const`
7. The `dynamic` keyword## 4. Control flow
1. Section Intro
2. If/else statements
3. **Exercise**: if/else statements
4. while loops
5. for loops
6. **Exercise**: fizz buzz
7. `break` and `continue`
8. switch statements
9. enumerations
10. **Exercise**: simple calculator## 5. Project: Building a command line app
1. Section intro
2. Installing the Dart SDK
3. Installing and configuring VS Code
4. **Project Brief**: Rock, Paper & Scissors
5. Creating a command line app
6. Pseudocode for the game logic
7. Getting use input with stdin from dart:io
8. Implementing the game loop
9. Implementing the game logic## 6. Collections
1. Section Intro
2. Lists
3. **Exercise**: Sum of the items in a list
4. List methods
5. Type annotations with lists
6. Using `var`, `final`, `const` with lists
7. Sets
8. **Exercise**: Sets
9. Maps
10. The `as` operator
11. The `null` value
12. Iterating on maps
13. **Exercise**: Pizza Ordering
14. Nested Collections
15. **Exercise**: Restaurant ratings
16. Collection-if
17. Collection-for
18. Spreads
19. **Exercise**: Shopping List
20. Copying collections## 7. Project: Data Processing in Dart
1. Section Intro
2. Parsing command line arguments
3. Reading files line by line
4. Pseudocode for the processing logic
5. Implementing the processing logic## 8. Dart Null Safety
1. Introduction to Null Safety
2. Nullable and non-nullable variables
3. Flow Analysis: Promotion and Definite Assignment
4. The assertion operator
5. The if-null operator
6. Null Safety with type inference
7. Null Safety with collections
8. The conditional access operator & the billion dollar mistake## 9. Functions: Basics
1. Section Intro
2. Intro to functions
3. Function arguments
4. Return values
5. **Exercise**: Sum of a list of numbers
6. Named and positional arguments
7. Required and default values
8. Default positional arguments
9. **Exercise**: Pizza ordering with functions
10. Fat arrow notation
11. The global and local scope
12. Inner Functions
13. Global mutable state and functions with side effects## 10. Functions: Advanced
1. Section Intro
2. Anonymous functions
3. Functions as first class objects
4. Function types
5. Closures
6. The `forEach` method
7. The `map` method
8. `Iterable` and `toList()`
9. Code reuse with anonymous functions and generics
10. The `where` and `firstWhere` methods
11. **Exercise**: Implement the `where` function
12. **Exercise**: Implement the `firstWhere` function
13. The `reduce` method
14. Combining functional operators## 11. Classes: Basics
1. Section Intro
2. Introduction to classes
3. Instance methods
4. Class constructors and the `this` keyword
5. Initializer lists and the shorthand syntax
6. Classes with immutable members
7. **Exercise**: Creating a `Person` class
8. Type safety with classes
9. `const` constructors
10. Named constructors
11. Named constructors: temperature example
12. Getters and setters
13. **Exercise**: Restaurant ratings with classes
14. Static methods and variables
15. Private variables and methods
16. Wrap up## 12. Classes: Advanced
1. Section Intro
2. VS Code Dart Setup with Null Safety
3. Introduction to inheritance / subclassing
4. The `super` constructor
5. Overriding methods
6. Abstract classes
7. **Exercise**: Area and Perimeter
8. Interfaces and the difference between `implements` and `extends`
9. The base `Object` class
10. The `toString()` method
11. The equality operator and the `covariant` keyword
12. **Exercise**: Implement the + and * operators
13. Overriding `hashCode` and the Equatable package
14. Using classes with generics
15. Composition vs inheritance: Flutter widget hierarchy example
16. Factory constructors and reading JSON data
17. **Exercise**: JSON Serialization
18. Copying objects with `copyWith`
19. The cascade operator## 13. Project: Simple eCommerce
1. Simple eCommerce store: Overview
2. Creating the Product, Item, Cart classes
3. Adding the interactive prompt
4. Adding items to the cart
5. Checkout functionality
6. Project structure and wrap-up## 14. Mixins & Extensions
1. Section Intro
2. Creating and using mixins
3. Mixins: Drawbacks
4. Extensions
5. Extensions with generic type constraints
6. **Exercise**: Range extension## 15. Error Handling & Exceptions
1. Section Intro
2. Errors vs Exceptions
3. Assertions
4. Exceptions: `throw`, `try`, `catch`, `finally`, `rethrow`
5. **Exercise**: Email validation## 16. Async Programming
1. Section Intro
2. Futures, `then`, `catchError`, `whenComplete`
3. `async` and `await`
4. `Future.value` and `Future.error`
5. **Exercise**: Countdown with Futures
6. Streams
7. Stream generators: `async*` and `yield`
8. **Exercise**: Fizz-buzz with streams
9. Stream constructors
10. Stream methods
11. Single / multiple subscription streams## 17. Weather App
1. Weather App Overview
2. REST API Basics
3. Creating the command-line app
4. Creating a Weather API Client with the Dart http package
5. Reading the response status code and data
6. Completing the Weather API client
7. Parsing JSON Data
8. Error Handling and Wrap up## 18. Conclusion & Next Steps
1. BONUS Content: Free Dart eBook & Next Steps
### [LICENSE: MIT](LICENSE)