Урок 1.00:02:15
Welcome & Introduction
Урок 2.00:02:25
What's Inside the Course?
Урок 3.00:02:16
How To Get The Most Out Of This Course
Урок 4.00:01:38
Planning the App
Урок 5.00:00:47
Module Introduction
Урок 6.00:04:23
What is Angular?
Урок 7.00:04:25
Project Setup with the Angular CLI
Урок 8.00:05:40
How an Angular App Starts and Works
Урок 9.00:05:47
Adding Components
Урок 10.00:07:01
Template Syntax
Урок 11.00:04:23
Using Directives like ngFor and ngIf
Урок 12.00:07:14
Custom Property & Event Binding
Урок 13.00:04:18
Forms
Урок 14.00:11:11
Understanding Services & Dependency Injection
Урок 15.00:06:53
Angular Routing
Урок 16.00:00:31
Where to Dive Deeper
Урок 17.00:03:18
Module Introduction
Урок 18.00:03:04
Understanding Angular Material Components
Урок 19.00:12:14
Adding Angular Material to a Project
Урок 20.00:00:53
Stay Up To Date!
Урок 21.00:07:40
Our First Angular Material Component - The Button
Урок 22.00:07:55
Creating the Course App Structure
Урок 23.00:05:05
Working on The Signup Form
Урок 24.00:09:44
Flexbox - A Quick Refresher
Урок 25.00:06:06
Controlling the Layout with @angular/flex-layout
Урок 26.00:05:07
Adding & Configuring the Submit Button
Урок 27.00:09:39
Implementing Hints and Validation Errors (on Forms)
Урок 28.00:09:18
Adding a Datepicker
Урок 29.00:03:28
Restricting Pickable Dates
Урок 30.00:04:29
Adding a Checkbox
Урок 31.00:02:32
Finishing the Form with Style
Урок 32.00:01:27
Wrap Up
Урок 33.00:00:40
Module Introduction
Урок 34.00:09:14
Adding Navigation & a Sidenav
Урок 35.00:05:14
Working on the Sidenav and Toolbar
Урок 36.00:09:10
Styling the Sidenav
Урок 37.00:05:09
Making the Page Responsive
Урок 38.00:09:40
Adding Navigation Items
Урок 39.00:09:40
Splitting the Navigation Into Components
Урок 40.00:04:38
Working on the Welcome Screen
Урок 41.00:04:41
Adding a Tabs Component
Урок 42.00:06:21
Adding some "Cards"
Урок 43.00:06:01
Adding a Dropdown Menu
Урок 44.00:09:17
Adding a Spinner to the Training Screen
Урок 45.00:03:22
Adding a Nice Exercise Timer
Урок 46.00:06:13
Adding a Cancel Dialog Screen
Урок 47.00:06:35
Passing Data to the Dialog
Урок 48.00:03:08
Adding "Exit" and "Continue" Options
Урок 49.00:01:13
Wrap Up
Урок 50.00:00:49
Module Introduction
Урок 51.00:18:38
Implementing Authentication
Урок 52.00:04:40
Routing & Authentication
Урок 53.00:06:55
Route Protection
Урок 54.00:04:13
Preparing the Exercise Data
Урок 55.00:04:35
Injecting & Using the Training Service
Урок 56.00:03:15
Setting an Active Exercise
Урок 57.00:04:36
Controlling the Active Exercise
Урок 58.00:03:22
Adding a Form to the Training Component
Урок 59.00:04:55
Handling the Active Training via a Service
Урок 60.00:06:11
Handling "Complete" and "Cancel" Events
Урок 61.00:14:08
Adding the Angular Material Data Table
Урок 62.00:06:09
Adding Sorting to the Data Table
Урок 63.00:05:21
Adding Filtering to the Data Table
Урок 64.00:05:34
Adding Pagination to the Data Table
Урок 65.00:00:53
Wrap Up
Урок 66.00:01:00
Module Introduction
Урок 67.00:04:42
What is Firebase?
Урок 68.00:02:27
Getting Started with Firebase
Урок 69.00:02:09
What is Angularfire?
Урок 70.00:06:25
RxJS Oservables Refresher
Урок 71.00:07:37
Observables in Action
Урок 72.00:12:25
Listening to Value Changes (of Firestore)
Урок 73.00:07:23
Listening to Snapshot Changes (of Firestore, incl. Metadata)
Урок 74.00:06:28
Restructuring the Code
Урок 75.00:02:54
How Firebase Manages Subscriptions
Урок 76.00:03:57
Storing Completed Exercises on Firestore
Урок 77.00:07:36
Connecting the Data Table to Firestore
Урок 78.00:05:04
Working with Documents
Урок 79.00:05:39
Adding Real Authentication (Sign Up)
Урок 80.00:01:52
Adding User Login
Урок 81.00:04:03
Understanding Authentication in SPAs
Урок 82.00:04:16
Configuring Firestore Security Rules
Урок 83.00:05:32
Managing Firestore Subscriptions
Урок 84.00:04:23
Reorganizing the Code
Урок 85.00:01:03
Wrap Up
Урок 86.00:00:52
Module Introduction
Урок 87.00:05:27
Style Improvements & Error Handling
Урок 88.00:10:29
Adding a Spinner
Урок 89.00:03:07
Adding a Re-Usable Snackbar (Notification)
Урок 90.00:06:08
Improving Error Handling
Урок 91.00:07:02
Splitting the App Into Modules
Урок 92.00:03:27
Optimizing Subscriptions
Урок 93.00:04:41
Creating a SharedModule
Урок 94.00:03:34
Splitting Up Routes
Урок 95.00:08:41
Loading a Module Lazily
Урок 96.00:02:38
Moving the Auth Guard
Урок 97.00:01:59
Wrap Up
Урок 98.00:04:05
Module Introduction
Урок 99.00:02:00
What is Redux - An Overview
Урок 100.00:14:41
NgRx Core Concepts - A First Example
Урок 101.00:12:37
Working with Multiple Reducers & Actions
Урок 102.00:04:38
Dispatching Actions & Selecting State Slices
Урок 103.00:09:52
Adding an Auth Reducer (and Actions)
Урок 104.00:08:11
Adding Auth Subscriptions
Урок 105.00:12:15
Adding the Training Reducer and Actions with Payloads
Урок 106.00:04:35
Lazy Loaded State
Урок 107.00:05:17
Dispatching Training Actions
Урок 108.00:06:34
Selecting Training State
Урок 109.00:07:31
Selecting Single Values Correctly
Урок 110.00:03:15
Connecting the Data Table
Урок 111.00:03:41
Cleaning the Project Up
Урок 112.00:00:56
Adding a small Bugfix
Урок 113.00:01:03
Wrap Up
Урок 114.00:01:44
Introduction & Preparation
Урок 115.00:04:11
Deploying the App to Firebase Hosting
Урок 116.00:00:24
Module Introduction
Урок 117.00:01:39
Understanding Angular Material Themes
Урок 118.00:05:49
Customising an Angular Material Theme
Урок 119.00:00:50
Course Roundup