-
Урок 1.
00:01:04
How to Get Help
-
Урок 2.
00:03:30
Course Organization
-
Урок 3.
00:02:44
Dart Overview
-
Урок 4.
00:02:20
The Dartpad Editor
-
Урок 5.
00:02:33
Our First Program
-
Урок 6.
00:02:45
Pulling the Pieces Apart
-
Урок 7.
00:03:37
Functions in Dart
-
Урок 8.
00:08:37
Introduction to Types
-
Урок 9.
00:05:37
Why Use Types?
-
Урок 10.
00:03:20
String Interpolation
-
Урок 11.
00:03:13
Object Oriented Programming in Dart
-
Урок 12.
00:04:34
Creating Classes
-
Урок 13.
00:03:58
Creating Class Instances
-
Урок 14.
00:07:27
Constructor Functions
-
Урок 15.
00:03:42
Review on Constructors
-
Урок 16.
00:01:13
App Overview
-
Урок 17.
00:03:20
OOP Design Flow
-
Урок 18.
00:06:00
Adding Fields to Classes
-
Урок 19.
00:01:23
Associated Methods
-
Урок 20.
00:02:53
More Initialization with Constructors
-
Урок 21.
00:03:09
For Loops
-
Урок 22.
00:03:57
Adding Elements to Lists
-
Урок 23.
00:04:47
More on Variable Initialization
-
Урок 24.
00:03:36
Customizing Print Statements
-
Урок 25.
00:04:31
ToString on Cards
-
Урок 26.
00:06:12
Shuffling a List
-
Урок 27.
00:04:43
Annotating Argument Types
-
Урок 28.
00:03:47
Filtering Lists
-
Урок 29.
00:02:40
Annotating Argument Types
-
Урок 30.
00:05:50
Filtering Lists
-
Урок 31.
00:07:15
Shorthand Function Syntax
-
Урок 32.
00:02:46
Removing Individual Records
-
Урок 33.
00:06:09
RemoveCard Implementation
-
Урок 34.
00:04:01
Named Parameters
-
Урок 35.
00:02:02
Flutter Setup on MacOS
-
Урок 36.
00:02:03
SDK Extraction
-
Урок 37.
00:07:47
Editing the PATH Variable
-
Урок 38.
00:01:25
XCode License
-
Урок 39.
00:01:21
Generating Flutter Projects
-
Урок 40.
00:01:59
Android Setup on MacOS
-
Урок 41.
00:01:18
Android Dependencies
-
Урок 42.
00:01:14
Android Project Setup
-
Урок 43.
00:01:26
More Android Dependencies!
-
Урок 44.
00:01:52
Android Emulator Creation
-
Урок 45.
00:01:28
Flutter Startup
-
Урок 46.
00:00:24
Finished Android Setup
-
Урок 47.
00:01:07
iOS on Mac Setup
-
Урок 48.
00:00:37
XCode Setup
-
Урок 49.
00:01:45
iOS Simulator Startup
-
Урок 50.
00:00:24
App Startup
-
Урок 51.
00:03:40
Flutter Install
-
Урок 52.
00:02:48
More Flutter Installation
-
Урок 53.
00:00:48
Android Install
-
Урок 54.
00:01:04
Additional Dependencies
-
Урок 55.
00:00:54
Generating a Project
-
Урок 56.
00:01:50
Selecting an Image
-
Урок 57.
00:03:19
Starting the Emulator
-
Урок 58.
00:00:24
Finishing Android Setup
-
Урок 59.
00:05:54
What's Flutter About, Anyways?
-
Урок 60.
00:02:08
App Overview
-
Урок 61.
00:04:15
The Four Step Design Process
-
Урок 62.
00:04:37
Import Statements
-
Урок 63.
00:04:57
Creating Widgets
-
Урок 64.
00:02:31
Displaying Content on Screen
-
Урок 65.
00:06:10
Showing a Scaffold
-
Урок 66.
00:03:58
Customizing the App Bar
-
Урок 67.
00:05:03
Named Parameter Clarification
-
Урок 68.
00:03:20
Required Parameters
-
Урок 69.
00:02:18
Child Parameters
-
Урок 70.
00:05:49
Displaying Icons
-
Урок 71.
00:03:51
Adding Custom Widgets
-
Урок 72.
00:04:16
Stateless vs Stateful Widgets
-
Урок 73.
00:04:01
The Build Method
-
Урок 74.
00:05:35
Local Import Statements
-
Урок 75.
00:03:18
Quick Breather and Review
-
Урок 76.
00:05:42
Refactoring Stateless to Stateful
-
Урок 77.
00:08:39
More Refactoring to Stateful Widgets
-
Урок 78.
00:06:34
Generics in Dart
-
Урок 79.
00:06:26
Why Two Classes?
-
Урок 80.
00:03:07
Photos API
-
Урок 81.
00:05:26
Working with JSON
-
Урок 82.
00:04:03
Casting JSON to Model Instances
-
Урок 83.
00:06:37
Named Constructors
-
Урок 84.
00:05:45
Adding an Image Model
-
Урок 85.
00:03:42
Function References
-
Урок 86.
00:04:10
The HTTP Package
-
Урок 87.
00:02:55
Issuing HTTP Requests
-
Урок 88.
00:07:51
Handling Dart Futures
-
Урок 89.
00:04:18
Parsing Future Responses into a Model
-
Урок 90.
00:03:42
Updating the AppState Widget
-
Урок 91.
00:04:58
Building Lists of Widgets
-
Урок 92.
00:03:36
Sending Images to the ImageList
-
Урок 93.
00:05:33
The Final Keyword
-
Урок 94.
00:05:57
Building Lists with ListView
-
Урок 95.
00:01:39
Listing URL's
-
Урок 96.
00:03:57
Text to Images
-
Урок 97.
00:08:08
Containers for Positioning
-
Урок 98.
00:07:20
Adding Border Style
-
Урок 99.
00:09:19
Column Widgets for Layout
-
Урок 100.
00:05:06
Selective Padding
-
Урок 101.
00:04:48
App Review
-
Урок 102.
00:05:27
App Overview
-
Урок 103.
00:04:51
Boilerplate App Code
-
Урок 104.
00:06:33
Creating the Login Screen
-
Урок 105.
00:04:32
More Container Styling
-
Урок 106.
00:08:46
Labels and Hint Text
-
Урок 107.
00:03:22
Customizing Keyboard Type
-
Урок 108.
00:05:10
Handling Password Inputs
-
Урок 109.
00:04:12
Displaying Buttons with RaisedButton
-
Урок 110.
00:01:36
Changing Widget Colors
-
Урок 111.
00:08:06
Layout Control
-
Урок 112.
00:03:45
Form Validation
-
Урок 113.
00:04:25
Referencing Widgets with Global Keys
-
Урок 114.
00:05:19
The Form Widget and FormState
-
Урок 115.
00:02:10
Creating a Global Key
-
Урок 116.
00:04:31
Referencing FormState with Global Keys
-
Урок 117.
00:05:56
Validating via FormState
-
Урок 118.
00:06:39
Triggering Validation
-
Урок 119.
00:06:32
Retrieving Form Values
-
Урок 120.
00:04:03
Final Form Submittal
-
Урок 121.
00:03:55
Code Reuse with Mixins
-
Урок 122.
00:05:12
Mixin Validator Implementation
-
Урок 123.
00:01:01
A Quick Detour
-
Урок 124.
00:06:00
Streams by Analogy
-
Урок 125.
00:04:09
Characteristics of Streams
-
Урок 126.
00:05:19
StreamControllers and Sinks
-
Урок 127.
00:02:40
Mapping a Stream
-
Урок 128.
00:04:26
Adding a StreamTransformer
-
Урок 129.
00:03:28
Implementing the Listener
-
Урок 130.
00:07:53
Stream Review
-
Урок 131.
00:05:36
Let's Build a Game
-
Урок 132.
00:09:48
Why Streams?
-
Урок 133.
00:05:33
Word Guessing
-
Урок 134.
00:06:09
Stream's 'Take' and 'Where' Functions
-
Урок 135.
00:05:57
Validation with Streams
-
Урок 136.
00:04:20
Email Validation
-
Урок 137.
00:04:36
Wiring up the Error
-
Урок 138.
00:06:43
BLOC's vs Stateful Widgets
-
Урок 139.
00:07:40
The Purpose of Streams with Blocs
-
Урок 140.
00:00:56
Generating a New Project
-
Урок 141.
00:03:06
App Boilerplate
-
Урок 142.
00:03:14
Second Time on LoginScreen
-
Урок 143.
00:07:49
TextFields with RaisedButtons
-
Урок 144.
00:03:18
How to Use TextFields
-
Урок 145.
00:04:04
BLOC Design for TextFields
-
Урок 146.
00:05:02
Annotating Stream Types
-
Урок 147.
00:06:27
Issues with Bloc Access
-
Урок 148.
00:08:41
Shortcut Access with Getters
-
Урок 149.
00:07:33
Public vs Private Fields
-
Урок 150.
00:04:08
Improving the BLOC Api
-
Урок 151.
00:06:53
Validation Transformers
-
Урок 152.
00:04:27
A Technicality Around Mixins
-
Урок 153.
00:03:19
Cleaning Up Controllers
-
Урок 154.
00:06:50
Bloc Application
-
Урок 155.
00:11:27
The StreamBuilder Widget
-
Урок 156.
00:04:19
Streambuilder for Password Fields
-
Урок 157.
00:03:09
Scoped Bloc Approach
-
Урок 158.
00:05:38
Provider Implementation
-
Урок 159.
00:07:34
The Provider's 'of' Function
-
Урок 160.
00:02:17
The Provider's Constructor
-
Урок 161.
00:03:20
The Provider in Action
-
Урок 162.
00:05:33
Accessing the Bloc
-
Урок 163.
00:05:38
Breather and Review
-
Урок 164.
00:05:17
Enabling Form Submission
-
Урок 165.
00:04:08
Stream Merging Possibilities
-
Урок 166.
00:04:14
Introducing RxDart
-
Урок 167.
00:05:53
More on RxDart
-
Урок 168.
00:10:07
The CombineLatest Function
-
Урок 169.
00:06:39
CombineLatest in Action
-
Урок 170.
00:03:40
More on StreamBuilder
-
Урок 171.
00:05:58
Interpreting Stream Values
-
Урок 172.
00:04:42
Broadcast Streams
-
Урок 173.
00:03:14
Disabled by Default
-
Урок 174.
00:08:22
Replacing Controllers with Subjects
-
Урок 175.
00:03:24
Review of BLOCs
-
Урок 176.
00:02:53
App Overview
-
Урок 177.
00:10:38
Animation Library Classes
-
Урок 178.
00:02:48
App Boilerplate
-
Урок 179.
00:04:20
StatefulWidgets for Animations
-
Урок 180.
00:02:27
Widget Structure
-
Урок 181.
00:03:45
Displaying a Cat
-
Урок 182.
00:03:55
The InitState Method
-
Урок 183.
00:05:46
Declaring the TickerProvider
-
Урок 184.
00:05:44
Tweens with Curves
-
Урок 185.
00:05:03
Performance Savings with AnimatedBuilder
-
Урок 186.
00:07:02
Nature of Animation
-
Урок 187.
00:01:48
Starting the Animation
-
Урок 188.
00:05:00
Watching for Taps with GestureDetector
-
Урок 189.
00:06:35
Reversing Animation States
-
Урок 190.
00:03:28
Building the Box
-
Урок 191.
00:02:44
Layouts with the Stack Widget
-
Урок 192.
00:02:52
Order of Drawing Widgets
-
Урок 193.
00:03:34
Add Center Widget
-
Урок 194.
00:11:07
Positioned Widgets
-
Урок 195.
00:06:58
Expanding Stack Dimensions
-
Урок 196.
00:07:17
Three Reasons for Strange Layouts
-
Урок 197.
00:03:58
Positioned Constraints
-
Урок 198.
00:03:57
Negative Offsets
-
Урок 199.
00:03:46
Stack Clip Settings
-
Урок 200.
00:02:20
Adjusting Tween Ranges
-
Урок 201.
00:03:29
Adding Box Flaps
-
Урок 202.
00:06:14
Rotating Widgets
-
Урок 203.
00:06:15
Rotation by Radians
-
Урок 204.
00:03:38
Changing Rotation Point
-
Урок 205.
00:05:19
A Touch of Positioning
-
Урок 206.
00:07:00
BoxAnimation Controller
-
Урок 207.
00:06:28
Adding Animated Builders
-
Урок 208.
00:04:10
Resetting Animations
-
Урок 209.
00:04:21
Constraining Animation Range
-
Урок 210.
00:03:15
Adding the Right Flap
-
Урок 211.
00:04:06
Negative Rotation Values
-
Урок 212.
00:02:37
Toggling Animation State
-
Урок 213.
00:02:50
Animation Wrapup
-
Урок 214.
00:03:09
App Overview
-
Урок 215.
00:08:52
Hacker News API
-
Урок 216.
00:08:05
More API Challenges
-
Урок 217.
00:08:28
API Performance Strategy
-
Урок 218.
00:08:39
Creating the ItemModel Class
-
Урок 219.
00:05:25
A Few More ItemModel Properties
-
Урок 220.
00:06:47
API Provider Implementation
-
Урок 221.
00:08:33
Fetching Individual Items
-
Урок 222.
00:04:44
Testing with Dart
-
Урок 223.
00:05:10
A Few Imports
-
Урок 224.
00:05:23
Writing Expectations
-
Урок 225.
00:05:53
Mocking HTTP Requests
-
Урок 226.
00:05:43
Returning JSON
-
Урок 227.
00:05:18
Testing FetchItem
-
Урок 228.
00:04:04
SQLite DB Provider
-
Урок 229.
00:04:28
Database Imports
-
Урок 230.
00:02:23
Async Constructors
-
Урок 231.
00:05:10
Creating a DB Connection
-
Урок 232.
00:03:42
Creating Tables with SQLite
-
Урок 233.
00:04:23
Adding Table Columns
-
Урок 234.
00:07:56
Issuing Queries
-
Урок 235.
00:04:32
Multiple Named Constructors
-
Урок 236.
00:04:32
Massaging DB Return Maps
-
Урок 237.
00:08:42
Turning Class Instances to Maps
-
Урок 238.
00:04:06
Implementing the Repository
-
Урок 239.
00:07:10
More on the Repository
-
Урок 240.
00:06:13
Type Annotations
-
Урок 241.
00:03:32
Casting Lists
-
Урок 242.
00:02:46
More on the Repository
-
Урок 243.
00:07:03
Abstract Classes
-
Урок 244.
00:04:28
The Need for Abstract Classes
-
Урок 245.
00:07:35
Why Abstract Classes?
-
Урок 246.
00:07:03
More on Abstract Classes
-
Урок 247.
00:07:17
Repository Interface Design
-
Урок 248.
00:05:53
Defining the Source
-
Урок 249.
00:02:09
Cache Definitions
-
Урок 250.
00:03:31
Lists of Sources and Caches
-
Урок 251.
00:04:06
Ultimate Reusability
-
Урок 252.
00:02:19
Quick Gotcha
-
Урок 253.
00:01:08
Another Quick Gotcha!
-
Урок 254.
00:02:29
FetchTopIds Implementation
-
Урок 255.
00:02:46
App Setup
-
Урок 256.
00:02:46
A Touch of Boilerplate
-
Урок 257.
00:10:13
Data Fetching Concerns
-
Урок 258.
00:03:23
Solution Outline
-
Урок 259.
00:12:05
FutureBuilder in Action
-
Урок 260.
00:06:03
The Stories Provider
-
Урок 261.
00:06:50
Bloc Design
-
Урок 262.
00:03:33
Exposing Bloc Getters
-
Урок 263.
00:03:21
Wiring up the Stories Provider
-
Урок 264.
00:07:52
Bloc Testing
-
Урок 265.
00:03:24
Type Annotations Solve Problems
-
Урок 266.
00:03:21
Circular Progress Indicator
-
Урок 267.
00:07:02
Item Fetching Architecture
-
Урок 268.
00:08:34
Giant Gotcha with StreamBuilder
-
Урок 269.
00:07:17
Giant Gotcha Solution
-
Урок 270.
00:05:39
Implementing ScanStreamTransformer
-
Урок 271.
00:02:28
Finishing the ScanStreamTransformer
-
Урок 272.
00:03:50
Adding the Items Controller
-
Урок 273.
00:03:29
A Gotcha Around Streams? Impossible!
-
Урок 274.
00:03:47
Single Transformer Application
-
Урок 275.
00:04:08
The ListView Tile
-
Урок 276.
00:03:28
StreamBuilder Setup
-
Урок 277.
00:03:57
Wrapping Up the FutureBuilder
-
Урок 278.
00:03:57
Double Gotcha!
-
Урок 279.
00:10:02
Stream Subscriptions
-
Урок 280.
00:01:14
Stream Subscription Fix
-
Урок 281.
00:02:38
Additional Streams
-
Урок 282.
00:08:43
A Laborious Refactor
-
Урок 283.
00:02:29
Result of Refactor
-
Урок 284.
00:03:58
Quick Debug Session
-
Урок 285.
00:09:01
Resolving Database Conflicts
-
Урок 286.
00:05:19
Building Story Tiles
-
Урок 287.
00:04:44
Comments Icon
-
Урок 288.
00:05:37
Applying Dividers with Height
-
Урок 289.
00:03:24
Loading Container Stand-in
-
Урок 290.
00:04:22
Building the Loading Container
-
Урок 291.
00:02:56
Showing the Loading Container
-
Урок 292.
00:02:36
Long-Lived Cache Values
-
Урок 293.
00:02:55
Swipe to Refresh Indicator
-
Урок 294.
00:04:34
Implementing a Refresh Widget
-
Урок 295.
00:07:52
Clearing Database Tables
-
Урок 296.
00:08:23
Communicating a Future to onRefresh
-
Урок 297.
00:04:06
Navigation in Flutter
-
Урок 298.
00:05:57
Map Based Routing
-
Урок 299.
00:03:40
OnGenerateRoute-Based Navigation
-
Урок 300.
00:06:35
OnGenerateRoute Implementation
-
Урок 301.
00:10:06
Navigating in Style!
-
Урок 302.
00:07:26
A PageRoute for NewsDetail
-
Урок 303.
00:03:42
A Scaffold in NewsDetail
-
Урок 304.
00:04:44
Parsing Route Settings
-
Урок 305.
00:06:05
The Comments Bloc Provider
-
Урок 306.
00:05:13
Comments Bloc Design
-
Урок 307.
00:07:36
More on Comments Bloc
-
Урок 308.
00:12:47
Recursive Data Fetching
-
Урок 309.
00:03:43
Connecting the Comments Provider
-
Урок 310.
00:03:23
Testing Recursive Fetching
-
Урок 311.
00:05:16
Consuming the Item Map
-
Урок 312.
00:05:49
Displaying the Story Title
-
Урок 313.
00:06:15
Text Styling
-
Урок 314.
00:05:32
Container Alignment
-
Урок 315.
00:07:30
Building the Comments List
-
Урок 316.
00:04:40
More Logic Extraction
-
Урок 317.
00:05:02
The Comment Widget
-
Урок 318.
00:03:22
Comment's FutureBuilder
-
Урок 319.
00:06:35
Showing Individual COmments
-
Урок 320.
00:05:51
Recursive Rendering
-
Урок 321.
00:04:27
Styling the Comment List
-
Урок 322.
00:03:38
Defaulting Null Values
-
Урок 323.
00:02:57
Handling Deleted Comments
-
Урок 324.
00:03:27
Nested Comments
-
Урок 325.
00:05:25
ListTile's ContentPadding Property
-
Урок 326.
00:05:15
Replacing Placeholder Characters
-
Урок 327.
00:02:57
Loading Containers for Comments
-
Урок 328.
00:06:11
App Wrapup
-
Урок 329.
00:01:42
Last Fix!
-
Урок 330.
00:02:39
Dart Local Installation
-
Урок 331.
00:03:24
Dart Install on Mac
-
Урок 332.
00:03:44
Editor Setup for Dart
-
Урок 333.
00:02:39
App Overview
-
Урок 334.
00:06:44
Folder and File Structure
-
Урок 335.
00:03:09
The PubSpec File
-
Урок 336.
00:03:59
Running Dart Files
-
Урок 337.
00:08:16
Program Design Methodology
-
Урок 338.
00:02:39
Class Creation
-
Урок 339.
00:03:16
Terminal Design
-
Урок 340.
00:02:15
Terminal Implementation
-
Урок 341.
00:05:18
Stdout and Stdin
-
Урок 342.
00:06:25
Import Statements
-
Урок 343.
00:04:36
Stdout Instance
-
Урок 344.
00:09:55
More on Import Statements
-
Урок 345.
00:03:23
Testing the Import Class
-
Урок 346.
00:03:52
Checking Operating System
-
Урок 347.
00:02:24
Clearing Windows Terminal
-
Урок 348.
00:01:08
Clearing Other Terminals
-
Урок 349.
00:01:23
Testing ClearScreen
-
Урок 350.
00:07:13
Collecting Input Over Stdin
-
Урок 351.
00:07:08
Option Class FIelds
-
Урок 352.
00:02:15
Adding Dynamic Fields
-
Урок 353.
00:06:59
Printing Individual Options
-
Урок 354.
00:04:37
Testing Option Printing
-
Урок 355.
00:04:36
List Shortcomings
-
Урок 356.
00:11:36
Maps in Dart
-
Урок 357.
00:03:44
Refactor to Maps
-
Урок 358.
00:04:01
The Prompter Class
-
Урок 359.
00:03:55
Testing the Prompter
-
Урок 360.
00:04:30
Extracting the Terminal
-
Урок 361.
00:07:02
Var vs Final for Variables
-
Урок 362.
00:06:02
Final's Affect on Values
-
Урок 363.
00:06:23
Const's Dual Nature
-
Урок 364.
00:12:03
Const's Behavior by Type
-
Урок 365.
00:02:13
Marking Terminal as Const
-
Урок 366.
00:07:23
Private Variables
-
Урок 367.
00:05:36
Finishing Prompter
-
Урок 368.
00:03:26
Error Handling
-
Урок 369.
00:04:05
Asking Binary Questions
-
Урок 370.
00:04:21
Testing Binary Inputs
-
Урок 371.
00:04:34
Code Similarities
-
Урок 372.
00:05:01
Refactor for Code Reuse
-
Урок 373.
00:05:16
More on Private
-
Урок 374.
00:02:45
Central Lib File
-
Урок 375.
00:03:10
A Single Export Point
-
Урок 376.
00:03:17
A Relevant Example File
-
Урок 377.
00:02:54
Outstanding Project Config
-
Урок 378.
00:05:41
Uploading the Prompter Lib
-
Урок 379.
00:02:52
App Overview
-
Урок 380.
00:04:06
Project Setup
-
Урок 381.
00:05:39
Importing Library Code
-
Урок 382.
00:04:10
Forcibly Exiting a Program
-
Урок 383.
00:03:28
Prompting for File Type
-
Урок 384.
00:04:14
Implementation Flow
-
Урок 385.
00:05:08
Working with the Current Directory
-
Урок 386.
00:07:14
Filtering Non-Files
-
Урок 387.
00:03:30
Filtering Non-Images
-
Урок 388.
00:06:04
Building Options from Images
-
Урок 389.
00:02:30
Testing Image Selection
-
Урок 390.
00:06:07
Converting Images
-
Урок 391.
00:03:04
The ConvertImage Function
-
Урок 392.
00:03:41
Reading File Contents
-
Урок 393.
00:03:40
Encoding to JPG or PNG
-
Урок 394.
00:05:34
Writing Files to the Hard Drive
-
Урок 395.
00:01:43
Returning the Image Name
-
Урок 396.
00:02:38
Testing Image Conversion
-
Урок 397.
00:03:24
Opening the Image