Этот материал находится в платной подписке. Оформи премиум подписку и смотри или слушай Android Kotlin Development Masterclass using Android Oreo, а также все другие курсы, прямо сейчас!
Премиум
  • Урок 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