Урок 1.00:01:54
Introduction
Урок 2.00:06:09
The Udemy Interface
Урок 3.00:19:23
Introduction to Android
Урок 4.00:11:19
Windows - Install Android Studio
Урок 5.00:06:36
Mac - Install Android Studio
Урок 6.00:11:36
Linux - Install Android Studio
Урок 7.00:12:05
Configure Android SDK on all Three Platforms
Урок 8.00:03:02
Android Studio Settings
Урок 9.00:13:55
Enable VT-X in BIOS
Урок 10.00:01:54
Your Programming Careers Questions Answered
Урок 11.00:00:41
Introduction
Урок 12.00:08:02
Android Studio Templates
Урок 13.00:08:26
More on Android Templates
Урок 14.00:12:44
Hello World
Урок 15.00:16:31
Tour of Android Studio
Урок 16.00:15:12
Setting Up a Virtual Device
Урок 17.00:09:51
Running on an emulator
Урок 18.00:12:27
Running on a physical Android device
Урок 19.00:10:34
Kotlin Tutorial Setup
Урок 20.00:09:10
Kotlin Tutorial 1
Урок 21.00:11:28
Variables and Types
Урок 22.00:11:50
More on Variables and Types
Урок 23.00:12:36
String Concatenation and Interpolation
Урок 24.00:10:20
val and var and more on Declarations
Урок 25.00:17:59
Conditions
Урок 26.00:19:35
Classes
Урок 27.00:14:54
Objects and Instances
Урок 28.00:06:25
Challenge
Урок 29.00:10:26
Lists
Урок 30.00:12:01
More on Lists
Урок 31.00:04:25
toString Challenge
Урок 32.00:14:08
for Loops
Урок 33.00:13:20
for Encapsulation and Private Properties
Урок 34.00:08:14
Overloading Functions
Урок 35.00:12:51
Inheritance
Урок 36.00:10:11
More on Inheritance
Урок 37.00:09:12
Inheritance Continued
Урок 38.00:09:53
Further Inheritance
Урок 39.00:14:19
while Loops
Урок 40.00:10:04
for Loop Revisited
Урок 41.00:05:15
do while Loop
Урок 42.00:12:38
Loop Challenge
Урок 43.00:02:28
Introduction
Урок 44.00:11:40
Setup Play Project
Урок 45.00:17:07
The Constraint Layout
Урок 46.00:15:18
Constraints and Resizing
Урок 47.00:07:53
Positioning Widgets
Урок 48.00:09:34
Inner Lines within a Widget
Урок 49.00:11:01
Layouts on Different Devices
Урок 50.00:12:49
More on the Constraints
Урок 51.00:09:56
Baseline Constraints
Урок 52.00:05:38
Constraining Widgets
Урок 53.00:13:33
Add Scrolling Capabilities
Урок 54.00:14:51
The Button Counter App
Урок 55.00:12:19
Finish Layout
Урок 56.00:13:50
Coding Button Counter App
Урок 57.00:12:47
findViewById and r Class
Урок 58.00:08:04
Events and setonclicklistener
Урок 59.00:14:11
Testing and Challenge Time
Урок 60.00:10:37
Extending the Button App
Урок 61.00:06:54
Testing and Challenge
Урок 62.00:03:59
Fixing Kotlin Gradle Issues
Урок 63.00:15:19
The Activity Lifecycle
Урок 64.00:09:05
The Logcat Pane
Урок 65.00:09:35
Logging the Activity Lifecycle
Урок 66.00:14:33
Activity Lifecycle in Action
Урок 67.00:15:10
Saving and Restoring Instance State
Урок 68.00:04:53
Demo Calculator App
Урок 69.00:15:37
Calculator Interface Setup
Урок 70.00:16:30
Continue with Interface
Урок 71.00:15:29
Fine Tuning the Layout
Урок 72.00:09:02
Create Landscape Layout
Урок 73.00:17:13
Comparing FIles with Diff
Урок 74.00:08:30
Comparing Directories
Урок 75.00:23:16
Coding the Calculator
Урок 76.00:07:05
Add onClickListeners
Урок 77.00:16:46
Write Perform Operation Function
Урок 78.00:14:14
Bug Fix and Code Improvements
Урок 79.00:19:53
Bug Fix Challlenge and Save State
Урок 80.00:07:29
Widget References in Kotlin
Урок 81.00:13:54
Guidelines
Урок 82.00:12:41
Fixing Landscape Layout
Урок 83.00:07:17
Add Neg Button to Layout
Урок 84.00:08:32
Code Changes for Neg Button
Урок 85.00:19:05
Add Neg Button to Portrait
Урок 86.00:10:48
Introduction
Урок 87.00:14:40
AsyncTask
Урок 88.00:09:01
Logging and Logcat
Урок 89.00:14:39
Download the RSS Feed
Урок 90.00:20:06
Reading the Data
Урок 91.00:20:04
Android Permissions
Урок 92.00:15:01
Writing Idiomatic Kotlin
Урок 93.00:07:07
More Idiomatic Kotlin
Урок 94.00:19:07
Parsing the Data
Урок 95.00:15:09
Create Xml Parse Function
Урок 96.00:10:13
Testing the App
Урок 97.00:13:20
ListView and ArrayAdapter
Урок 98.00:17:03
Code Changes for Array Adapter
Урок 99.00:07:32
onDestroy and Asynctask
Урок 100.00:11:44
Create Custom Adapter
Урок 101.00:17:20
Custom Adapter Code
Урок 102.00:12:43
Improving the Adapter
Урок 103.00:12:10
ViewHolder Pattern
Урок 104.00:09:00
Adding a Menu - Layout
Урок 105.00:16:06
Adding A Menu - Code
Урок 106.00:09:32
Menu Groups - Layout
Урок 107.00:15:57
Menu Groups - Code
Урок 108.00:15:32
Challenge Solution
Урок 109.00:17:55
Setup
Урок 110.00:13:28
YouTube Activity
Урок 111.00:10:00
Adding Widgets Dynamically
Урок 112.00:11:42
Google API Key
Урок 113.00:07:58
Add Key to Code
Урок 114.00:13:34
The YouTube Player
Урок 115.00:13:12
onInitializationSuccess Method
Урок 116.00:10:44
Adding Listeners
Урок 117.00:06:25
Improving the Player
Урок 118.00:05:29
Extending App Layouts
Урок 119.00:12:30
Extending Youtube App Code
Урок 120.00:17:54
Implementing Intents and Challenge
Урок 121.00:05:11
Challenge Solution
Урок 122.00:15:11
More Error Handling
Урок 123.00:04:07
Introduction
Урок 124.00:15:37
Flick App and Feeds
Урок 125.00:13:39
Json and Mini challenge
Урок 126.00:15:40
Log Tag and Companion Objects
Урок 127.00:12:15
Download JSON - doInBackground
Урок 128.00:13:29
Downloading the JSON
Урок 129.00:16:15
CallBacks
Урок 130.00:08:22
Project Diagram and Photo Class
Урок 131.00:20:08
GetFlickJsonData class
Урок 132.00:18:36
GetFlickrJsonData class continued
Урок 133.00:12:03
Uri Builder
Урок 134.00:12:08
Flickr Browser User Inferface
Урок 135.00:15:10
RecyclerView Layouts
Урок 136.00:05:44
Finishing Browse Layout
Урок 137.00:08:45
Search and PhotoDetail Activities
Урок 138.00:15:59
Nested Layouts
Урок 139.00:17:30
Recyclerview Adapter
Урок 140.00:14:13
onBindViewHolder and Picasso
Урок 141.00:06:55
Associate Adapter to Recyclerview
Урок 142.00:18:48
RecyclerItemClickListener
Урок 143.00:15:44
GestureDetector
Урок 144.00:16:01
Displaying the full photo
Урок 145.00:17:01
Serializable
Урок 146.00:05:57
Modify Photo Details Activity
Урок 147.00:09:06
Parcelable
Урок 148.00:13:56
Material Design
Урок 149.00:09:51
More on Material Design
Урок 150.00:06:34
AppCompat - Backwards Compatibility
Урок 151.00:12:07
Style Sheets
Урок 152.00:12:58
Custom Style Sheets
Урок 153.00:12:03
Namespaces
Урок 154.00:10:48
Other Material Design Changes
Урок 155.00:08:59
Differences in API Levels
Урок 156.00:10:24
String Resources
Урок 157.00:10:33
String Resources Placeholders
Урок 158.00:04:58
Adding the Search Feature
Урок 159.00:13:17
SearchView
Урок 160.00:12:09
More on SearchView
Урок 161.00:09:33
SearchView Events
Урок 162.00:10:21
SharedPreferences
Урок 163.00:08:30
Telling Fibs
Урок 164.00:01:18
Introduction
Урок 165.00:05:07
Introduction to Databases
Урок 166.00:10:43
Database Terminology
Урок 167.00:09:42
Command Line and Path Setup for Windows
Урок 168.00:08:07
Command Line and Path Setup for Mac
Урок 169.00:06:18
Command Line and Path Setup for Ubuntu Linux
Урок 170.00:11:16
Introduction to Sqlite
Урок 171.00:10:46
More SQL with Sqlite
Урок 172.00:16:07
Sqlite Querying Data
Урок 173.00:13:19
Order By and Joins
Урок 174.00:11:52
More Complex Joins
Урок 175.00:15:18
Wild Cards and Views
Урок 176.00:14:24
Housekeeping and Challenge
Урок 177.00:10:23
Basic SQL in Android
Урок 178.00:11:44
Create Table Add Data and Test
Урок 179.00:17:50
Cursor and Navigation
Урок 180.00:16:28
Android File System
Урок 181.00:02:56
Content Providers
Урок 182.00:11:40
Setting up the Emulators
Урок 183.00:07:43
Contact Provider App Layout
Урок 184.00:10:14
The ContactsContract
Урок 185.00:08:42
ContentResolver and Abstraction
Урок 186.00:09:34
Retrieving Data with a ContentResolver
Урок 187.00:13:33
Permissions
Урок 188.00:15:01
Checking Permissions at Runtime
Урок 189.00:09:17
Testing the App
Урок 190.00:08:12
Avoiding Crashes Snackbars and a Challenge
Урок 191.00:11:00
More on Snackbars
Урок 192.00:14:41
Intents, setData and Uris
Урок 193.00:06:25
Problems Storing State
Урок 194.00:04:27
Remove Saving of State
Урок 195.00:07:09
Test Scripts Challenge and Cleanup
Урок 196.00:02:18
Introduction
Урок 197.00:04:10
Androids ViewModel Class
Урок 198.00:13:37
Using a ViewModel
Урок 199.00:21:49
Finish ViewModel Changes
Урок 200.00:08:38
Exposing LiveData
Урок 201.00:07:47
Swapping the ViewModel
Урок 202.00:10:28
ViewModel with Top 10 Downloader
Урок 203.00:16:02
Implement ViewModel
Урок 204.00:10:23
Final Changes
Урок 205.00:04:27
App Testing
Урок 206.00:18:31
The TaskTimer Application
Урок 207.00:11:51
Database Setup
Урок 208.00:07:07
Tasks Contract Class
Урок 209.00:09:21
AppDatabase Class
Урок 210.00:08:40
Create SQL for Tasks Table
Урок 211.00:11:01
Singleton AppDatabase Class
Урок 212.00:12:15
onUpgrade and Testing
Урок 213.00:17:50
The ContentProvider
Урок 214.00:20:56
uriMatcher
Урок 215.00:03:19
Updating Build Files
Урок 216.00:12:12
The Content URI
Урок 217.00:11:55
Register the ContentProvider
Урок 218.00:12:19
Using appendWhereEscapeString
Урок 219.00:09:08
Mime Types in the Content Provider
Урок 220.00:09:12
Content Provider Insert
Урок 221.00:12:24
Update and Delete
Урок 222.00:12:46
Testing Insert and Update
Урок 223.00:14:50
Testing Bulk Update and Delete
Урок 224.00:15:31
Main Menu UI
Урок 225.00:14:43
Task UI Layout
Урок 226.00:05:55
Task List Items Constraints
Урок 227.00:17:00
Add / Edit Layout
Урок 228.00:12:22
The Kotlin Data Class
Урок 229.00:18:54
The Add / Edit Fragment
Урок 230.00:12:46
Swapping Fragments
Урок 231.00:13:20
Multi-pane Fragments
Урок 232.00:15:50
Multi-pane Displays
Урок 233.00:10:36
Enabling Two-pane Mode
Урок 234.00:12:52
The Fragment Lifecycle Part 1
Урок 235.00:07:38
The Fragment Lifecycle Part 2
Урок 236.00:14:56
Logging the Fragment Lifecycle
Урок 237.00:11:36
Android SDK Gradle and Kotlin Updates
Урок 238.00:07:50
Up and Back Navigation for Fragments
Урок 239.00:03:48
Object can have More than One Type
Урок 240.00:06:32
Removing the Up Button
Урок 241.00:06:44
Back Navigation
Урок 242.00:10:17
Completing the AddEdit UI
Урок 243.00:10:33
Saving the Task Details
Урок 244.00:07:36
Test Saving
Урок 245.00:04:37
Updating Android Studio, Kotlin, and Gradle
Урок 246.00:04:51
Fixing New Kotlin Warnings
Урок 247.00:07:00
Layout Container
Урок 248.00:16:20
RecyclerView CursorAdapter
Урок 249.00:01:44
Introducing David Reidy
Урок 250.00:12:16
Tricky String Resources
Урок 251.00:07:32
The ViewModel Class
Урок 252.00:03:29
Subscribe to The ViewModel
Урок 253.00:09:27
Notifications and Observers
Урок 254.00:04:36
Responding to Taps
Урок 255.00:02:51
onClick Listeners, Interfaces and Callbacks
Урок 256.00:04:33
Responding to Clicks from the Adapter
Урок 257.00:05:59
Solution to The Interface Challenge
Урок 258.00:09:58
Deleting a Task from The Database
Урок 259.00:07:43
Accessing a Database on a Background Thread
Урок 260.00:04:38
Background Processing Using a Coroutine
Урок 261.00:09:07
Clean Up AddEditFragment
Урок 262.00:05:22
Saving in The ViewModel
Урок 263.00:05:38
Sharing ViewModel Instances
Урок 264.00:14:15
AndroidX
Урок 265.00:04:23
Introduction to Dialogs
Урок 266.00:15:53
AppDialog Class Part 1
Урок 267.00:08:49
AppDialog Class Part 2
Урок 268.00:05:53
Adding a Dialog to The App
Урок 269.00:11:45
Dialog CallBacks
Урок 270.00:08:15
Asserts and BuildConfig
Урок 271.00:05:55
Strange Dialog Behavior
Урок 272.00:07:55
Confirming Exit Without Saving
Урок 273.00:04:20
Implementing the Interface
Урок 274.00:08:46
Kotlin Extension Functions
Урок 275.00:13:39
Image Asset Studio
Урок 276.00:10:57
Create an About Dialog the Layout Part 1
Урок 277.00:11:32
Create an About Dialog the Layout Part 2
Урок 278.00:12:11
Displaying the About Dialog
Урок 279.00:08:07
Versioning and build.gradle
Урок 280.00:08:59
Dismissing the Dialogue
Урок 281.00:08:35
Supporting Older Versions
Урок 282.00:15:04
Compatibility Challenge Solution Part 1
Урок 283.00:12:26
Compatibility Challenge Solution Part 2
Урок 284.00:03:06
Introduction
Урок 285.00:10:54
Settings Dialog Layout
Урок 286.00:04:04
Settings Dialog
Урок 287.00:07:31
DefaultSharedPreferences
Урок 288.00:08:09
SeekBar Values
Урок 289.00:09:31
Quantity String Resources
Урок 290.00:03:41
Setting Dialog Title
Урок 291.00:06:18
Retain Instance State
Урок 292.00:04:14
Introduction
Урок 293.00:07:13
A Correction and the Device File Explorer
Урок 294.00:11:46
Database Updates
Урок 295.00:06:21
Saving the Timing Data
Урок 296.00:04:16
The saveTiming Function
Урок 297.00:03:38
Testing Timings
Урок 298.00:04:55
Providing Feedback
Урок 299.00:03:59
Data Loss
Урок 300.00:04:06
Storing the Current Timing Records
Урок 301.00:04:47
Solution - Retrieving the Current Time Record
Урок 302.00:02:02
Solution Continued
Урок 303.00:06:49
Finish Solution and Test
Урок 304.00:06:32
When the Battery Dies
Урок 305.00:12:53
Creating Test Data
Урок 306.00:03:37
Generating the Test Data
Урок 307.00:10:08
Debug and Release Builds
Урок 308.00:11:54
Using a SQLite view
Урок 309.00:08:04
Adding the view to the Database
Урок 310.00:03:30
Adding the view to the ContentProvider
Урок 311.00:07:16
Testing the Database Upgrade
Урок 312.00:09:03
ConstraintLayout Chains
Урок 313.00:12:29
Chain Types
Урок 314.00:10:19
Finishing the reports layouts - challenge
Урок 315.00:09:17
The Landscape Layouts
Урок 316.00:10:43
The Report Adapter
Урок 317.00:12:11
The Durations Report Activity
Урок 318.00:06:56
Testing Different Locales
Урок 319.00:06:30
Creating the reports ViewModel
Урок 320.00:02:33
Using the DurationsViewModel
Урок 321.00:06:41
Sorting the Report Data
Урок 322.00:13:10
Vector Drawables and Asset Studio
Урок 323.00:05:28
The Report Menu
Урок 324.00:07:39
Report Menu Code - day/week toggle
Урок 325.00:15:22
The DatePickerDialog
Урок 326.00:05:57
Filtering by Date
Урок 327.00:10:13
Filtering in the DurationsViewModel
Урок 328.00:07:31
Testing the Report Filters
Урок 329.00:09:40
Unbuggy DatePickerDialog
Урок 330.00:09:24
Deleting old Timings data
Урок 331.00:04:03
Testing Mass Deletion
Урок 332.00:04:28
Observing the cursor in the ViewModel
Урок 333.00:05:02
A Minor Bug
Урок 334.00:09:08
Observing a Configuration Change
Урок 335.00:08:05
Testing the Bug Fix
Урок 336.00:06:14
Using the First Day Of Week Setting
Урок 337.00:04:28
Taking Advantage of Later Features
Урок 338.00:04:10
Testing the new DatePickerFragment
Урок 339.00:07:20
Observing SharedPreference changes
Урок 340.00:09:37
Solution to Ignore Short Timings Challenge
Урок 341.00:04:49
Bonus Lecture and Information