1 - (0) Introduction to this course 0:21
2 - (0.1) Why you need to learn Dart prior to Flutter? 0:52
3 - (0.2) This course is full of unique features 1:18
4 - (1) Short introduction of all particularities of Dart Language 1:02
5 - (1.1) What is Dart? 2:07
6 - (1.2) Type Safety 1:34
7 - (1.3) Soundness 1:58
8 - (1.4) Type inference & dynamic vs var 3:45
9 - (1.5) Null Safety 0:49
10 - (1.6) Dart Compilers 5:43
11 - (2) Installing the Dart SDK on multiple platforms 0:20
12 - (2.1) Introduction to Dart SDK 5:14
13 - (2.2) Windows Installation 1:44
14 - (2.3) Linux Installation 0:56
15 - (2.4) Apple Installation 2:55
16 - (3) The structure of a Dart Project (multiple templates) 1:30
17 - (3.1) Introduction to Dart CLI 2:05
18 - (3.2) First Dart Project 6:09
19 - (3.3) Dart Observatory & Dev Tools 1:19
20 - (4) Components of a Dart Project 0:45
21 - (4.1) Dart Package Folder & File Structure 0:57
22 - (4.2) Dart Packages 6:00
23 - (4.3) Dart Libraries 1:38
24 - (4.4) Dart Linting 2:22
25 - (4.5) Dart Tests 2:12
26 - (5) JIT & AOT Compilers Explained 3:39
27 - (5.1) Dart VM 2:19
28 - (5.2) Running from source using JIT Compiler 3:59
29 - (5.3) Running from source using AOT Compiler 1:02
30 - (5.4) JIT vs AOT 2:56
31 - (6) Kernel, JIT & AOT Snapshots 0:59
32 - (6.1) What is a dart snapshot? 0:59
33 - (6.2) Running from kernel snapshot 0:56
34 - (6.3) Running from jit-snapshot 1:02
35 - (6.4) Running from aot-snapshot 2:59
36 - (7) Everything about Dart Packages 4:49
37 - (7.1) All kinds of dependencies (Immediate, transitive, regular, dev) 3:09
38 - (7.2) All kinds of packages (hosted, git, path, sdk) 10:59
39 - (8) Effective Dart & Analysis Options File 3:59
40 - (8.1) Analysis_options.yaml file + lint rules 2:45
41 - (9) Sound Null Safety Explained 27:13
42 - (10) Dart Variables 6:27
43 - (10.1) Top level, static, instance, local 15:51
44 - (10.2) var vs dynamic vs const vs final 8:39
45 - (11) Built-in Types 4:19
46 - (11.1) Numbers 6:39
47 - (11.2) Strings 3:59
48 - (11.3) Booleans 1:59
49 - (11.4) Lists 12:59
50 - (11.5) Sets 3:49
51 - (11.6) Maps 2:57
52 - (11.7) Runes 2:11
53 - (12) Dart Functions Explained 6:47
54 - (12.1) Anonymous functions (closures, lambdas) 4:02
55 - (12.2) Function parameters (positional, named) 9:08
56 - (13) Dart Operators Explained 4:44
57 - (13.1) Arithmetic operators 2:48
58 - (13.2) Equality & relational operators 4:02
59 - (13.3) Type test operators (as, is, is!) 2:38
60 - (13.4) Assignment operators 5:43
61 - (14) Dart Control Flow Statements Explained 1:03
62 - (14.1) Debugging a Dart Program 1:45
63 - (14.2) if/else 1:44
64 - (14.3) for loop 1:47
65 - (14.4) while/do while 0:56
66 - (14.5) break/continue 2:14
67 - (14.6) switch case 7:19
68 - (14.7) exceptions 6:04
69 - (15) Dart Classes I 2:55
70 - (15.1) Inheritance intro 2:14
71 - (15.2) Instance variables & methods 7:03
72 - (15.3) Constructors 18:57
73 - (15.4) Singleton, Operators, Static 4:46
74 - (16) Dart Classes II 2:02
75 - (16.1) Inheritance 4:39
76 - (16.2) Polymorphism 4:09
77 - (16.3) Abstraction, classes, methods, interfaces 8:09
78 - (16.4) Mixins 10:29
79 - (16.5) Extension methods 1:26
80 - (17) Dart Generics Explained 26:59
81 - (18) Dart Libraries & Private Fields 22:59
82 - (19) Dart Testing Explained 20:59
83 - (20) Dart Isolates Explained (Sync & Async Chapter) 9:10
84 - (20.1) Dart Isolate Structure, Event Queue, Event Loop, Single Thread, Memory 7:38
85 - (20.2) Parallelism 1:09
86 - (20.3) Isolate Groups 1:40
87 - (20.4) Microtask queue 4:18
88 - (21) Dart Synchronous Workflows 4:00
89 - (21.1) Iterables and Lists 10:58
90 - (22) Dart Asynchronous Workflows 2:50
91 - (22.1) Futures in-depth 27:39
92 - (22.2) Streams in-depth