1. Урок 1.00:02:13
    Welcome
  2. Урок 2.00:05:56
    Interface Overview
  3. Урок 3.00:19:22
    Introduction to Android
  4. Урок 4.00:11:19
    Windows - Install Android Studio
  5. Урок 5.00:06:36
    Mac - Install Android Studio
  6. Урок 6.00:11:36
    Linux - Install Android Studio
  7. Урок 7.00:12:05
    Configure Android SDK on all Three Platforms
  8. Урок 8.00:03:02
    Android Studio Settings
  9. Урок 9.00:13:55
    Enable VT-X in BIOS
  10. Урок 10.00:01:54
    Your Programming Careers Questions Answered
  11. Урок 11.00:00:41
    Introduction
  12. Урок 12.00:08:02
    Android Studio Templates
  13. Урок 13.00:08:26
    More on Android Templates
  14. Урок 14.00:14:04
    Hello World
  15. Урок 15.00:16:40
    Tour of Android Studio
  16. Урок 16.00:15:12
    Setting Up a Virtual Device
  17. Урок 17.00:09:51
    Running on an emulator
  18. Урок 18.00:12:27
    Running on a physical Android device
  19. Урок 19.00:02:28
    Introduction
  20. Урок 20.00:11:40
    Setup Play Project
  21. Урок 21.00:17:07
    The Constraint Layout
  22. Урок 22.00:15:18
    Constraints and Resizing
  23. Урок 23.00:07:53
    Positioning Widgets
  24. Урок 24.00:09:34
    Inner Lines within a Widget
  25. Урок 25.00:11:01
    Layouts on Different Devices
  26. Урок 26.00:12:49
    More on the Constraints
  27. Урок 27.00:09:56
    Baseline Constraints
  28. Урок 28.00:05:38
    Constraining Widgets
  29. Урок 29.00:13:33
    Add Scrolling Capabilities
  30. Урок 30.00:14:51
    The Button Counter App
  31. Урок 31.00:12:19
    Finish Layout
  32. Урок 32.00:14:04
    Activites, Bundles and Classes
  33. Урок 33.00:13:11
    Java Fields and Classes
  34. Урок 34.00:04:51
    Asking good questions
  35. Урок 35.00:11:34
    Button Click and onClickListener
  36. Урок 36.00:13:58
    Fixing Some Issues
  37. Урок 37.00:13:07
    Get Text and Null Checking
  38. Урок 38.00:09:16
    ID Confusion and Challenge Time
  39. Урок 39.00:08:08
    Save Instance State
  40. Урок 40.00:05:54
    Activity Lifecycle
  41. Урок 41.00:11:42
    Overriding Methods
  42. Урок 42.00:15:03
    Logging and Bundle Data
  43. Урок 43.00:07:01
    Wrap Up
  44. Урок 44.00:01:28
    Introduction to this section
  45. Урок 45.00:16:32
    Hello World
  46. Урок 46.00:14:59
    Strings and Ints
  47. Урок 47.00:15:01
    Arithmetic and String Concatenation
  48. Урок 48.00:16:54
    Classes
  49. Урок 49.00:16:12
    Encapsulation
  50. Урок 50.00:15:15
    Multiple Constructors
  51. Урок 51.00:15:31
    this and Calling Methods
  52. Урок 52.00:17:51
    Object and Method Chaining
  53. Урок 53.00:18:26
    Enum and ArrayList
  54. Урок 54.00:14:11
    Testing Our Classes
  55. Урок 55.00:14:47
    Inheritance
  56. Урок 56.00:08:57
    Extending From a Class
  57. Урок 57.00:14:26
    Overloading and Overriding Annotation
  58. Урок 58.00:07:15
    Inheritance Challenge
  59. Урок 59.00:14:25
    Repeating Code While
  60. Урок 60.00:14:24
    for and for each Loops
  61. Урок 61.00:05:42
    do while Loop
  62. Урок 62.00:14:51
    Comparing Numbers and Objects
  63. Урок 63.00:01:20
    Introduction to this section
  64. Урок 64.00:04:53
    Demo Calculator App
  65. Урок 65.00:15:37
    Calculator Interface Setup
  66. Урок 66.00:16:30
    Continue with Interface
  67. Урок 67.00:15:29
    Fine Tuning the Layout
  68. Урок 68.00:09:02
    Create Landscape Layout
  69. Урок 69.00:17:13
    Comparing Files with Diff
  70. Урок 70.00:08:30
    Comparing Directories
  71. Урок 71.00:14:01
    Flowchart and onClickListeners
  72. Урок 72.00:08:00
    Operation Button Listeners
  73. Урок 73.00:12:02
    Implement Operations
  74. Урок 74.00:12:35
    Decimal Point Bug Fix
  75. Урок 75.00:10:21
    Bug Fix Challenge
  76. Урок 76.00:13:54
    Guidelines
  77. Урок 77.00:12:41
    Fixing Landscape Layout
  78. Урок 78.00:07:17
    Add Neg Button to Layout
  79. Урок 79.00:09:09
    Write Neg Button Functionality
  80. Урок 80.00:19:05
    Add Neg Button to Portrait
  81. Урок 81.00:01:35
    Introduction to this section
  82. Урок 82.00:10:48
    Introduction
  83. Урок 83.00:13:07
    Async Task
  84. Урок 84.00:05:55
    Exectute Our Async Task
  85. Урок 85.00:12:26
    doInBackground and downloadXML
  86. Урок 86.00:11:59
    Exceptions and Buffered Reader
  87. Урок 87.00:10:04
    Security Exception
  88. Урок 88.00:08:09
    Stack Trace and the logcat
  89. Урок 89.00:13:01
    Android App Permissions
  90. Урок 90.00:11:39
    Processing XML Data
  91. Урок 91.00:09:30
    XML Parsing Factory Classes
  92. Урок 92.00:12:41
    Main XML Parsing Loop
  93. Урок 93.00:12:45
    Testing the Program
  94. Урок 94.00:13:19
    ListView and Array Adapters
  95. Урок 95.00:08:31
    Array Adapter
  96. Урок 96.00:11:44
    Create Custom Adapter
  97. Урок 97.00:11:21
    Context and Layout Inflater
  98. Урок 98.00:12:37
    Custom Adapter Implementation
  99. Урок 99.00:10:56
    Improving the Adapter
  100. Урок 100.00:09:35
    ViewHolder Pattern
  101. Урок 101.00:10:26
    Adding a Menu​
  102. Урок 102.00:07:12
    Get Menus for Multiple Feeds Working
  103. Урок 103.00:10:43
    Menu Groups
  104. Урок 104.00:12:50
    Implement Top 10 and Top 25
  105. Урок 105.00:17:11
    Challenge Solution
  106. Урок 106.00:04:02
    Generics Adapter
  107. Урок 107.00:01:49
    Introduction to this section
  108. Урок 108.00:03:18
    Details and Setup
  109. Урок 109.00:10:48
    YouTube API Setup
  110. Урок 110.00:10:59
    Add Second Activity
  111. Урок 111.00:15:02
    Adding Layouts Dynamically
  112. Урок 112.00:15:38
    Get Google API Key
  113. Урок 113.00:12:18
    onInitialization Failure
  114. Урок 114.00:06:32
    onInitialization Success
  115. Урок 115.00:09:42
    Test App and Add Listeners
  116. Урок 116.00:06:56
    Documentation and more testing
  117. Урок 117.00:12:08
    Demo App and Create Layouts
  118. Урок 118.00:12:31
    Standalone Activity
  119. Урок 119.00:13:11
    Intents and Manifest File Changes
  120. Урок 120.00:07:57
    Run and Test App
  121. Урок 121.00:07:00
    Challenge Solution
  122. Урок 122.00:01:31
    Introduction to this section
  123. Урок 123.00:12:50
    Details and Setup
  124. Урок 124.00:12:51
    Flickr API Usage
  125. Урок 125.00:07:45
    API JSON and Validation
  126. Урок 126.00:16:50
    Create Project
  127. Урок 127.00:14:56
    Async Task
  128. Урок 128.00:15:06
    Finish Download Code
  129. Урок 129.00:18:43
    Download JSON Data
  130. Урок 130.00:13:12
    Project Diagram and Photo Class Code
  131. Урок 131.00:12:23
    Get Flickr JSON Data Class Code
  132. Урок 132.00:15:35
    Create URI and JSON Parsing
  133. Урок 133.00:13:17
    Implement Call Backs
  134. Урок 134.00:16:04
    Make Get JSON Asyncronous
  135. Урок 135.00:11:32
    Finish Off Code
  136. Урок 136.00:12:20
    User Interface
  137. Урок 137.00:19:21
    Recycler View
  138. Урок 138.00:12:15
    Search and Photo Detail Activities
  139. Урок 139.00:11:09
    Nesting Linear Layouts
  140. Урок 140.00:16:29
    RecyclerView Adapter
  141. Урок 141.00:15:45
    Implement Methods and Picasso
  142. Урок 142.00:11:13
    Get Picasso Working
  143. Урок 143.00:13:30
    Gesture Detector
  144. Урок 144.00:11:21
    Touch Events
  145. Урок 145.00:10:44
    Implementing Touch Methods
  146. Урок 146.00:15:47
    BaseActivity and Serializable
  147. Урок 147.00:15:29
    PhotoDetailActivity
  148. Урок 148.00:16:02
    Material Design
  149. Урок 149.00:09:46
    Material Design Continued
  150. Урок 150.00:09:58
    Backwards Compatibility
  151. Урок 151.00:13:13
    Style Sheets
  152. Урок 152.00:13:37
    Custom Style Sheet
  153. Урок 153.00:09:38
    Experimenting with Styles
  154. Урок 154.00:13:02
    Other Material Design Changes
  155. Урок 155.00:11:53
    Differences in API Levels and Challenge
  156. Урок 156.00:16:36
    String Resources
  157. Урок 157.00:13:12
    Search Menu Code
  158. Урок 158.00:14:57
    SearchView
  159. Урок 159.00:14:47
    SearchManager
  160. Урок 160.00:11:56
    Implement Searching
  161. Урок 161.00:09:26
    Shared Preferences
  162. Урок 162.00:08:22
    Show Empty Search Message and Summary
  163. Урок 163.00:01:58
    Introduction to this section
  164. Урок 164.00:05:07
    Introduction to Databases
  165. Урок 165.00:10:43
    Database Terminology
  166. Урок 166.00:09:42
    Command Line and Path Setup for Windows
  167. Урок 167.00:08:07
    Command Line and Path Setup for Mac
  168. Урок 168.00:06:18
    Command Line and Path Setup for Ubuntu Linux
  169. Урок 169.00:11:16
    Introduction to Sqlite
  170. Урок 170.00:10:46
    More SQL with Sqlite
  171. Урок 171.00:16:07
    Sqlite Querying Data
  172. Урок 172.00:13:19
    Order By and Joins
  173. Урок 173.00:11:52
    More Complex Joins
  174. Урок 174.00:15:18
    Wild Cards and Views
  175. Урок 175.00:14:24
    Housekeeping and Challenge
  176. Урок 176.00:16:43
    Basic SQL in Android
  177. Урок 177.00:10:59
    Debugging SQL in Code
  178. Урок 178.00:06:32
    Cursor and Navigation
  179. Урок 179.00:16:55
    Android File System
  180. Урок 180.00:02:56
    Content Providers
  181. Урок 181.00:12:00
    Setup Contacts
  182. Урок 182.00:12:18
    Content Provider Example
  183. Урок 183.00:11:01
    ContactsContract.Contacts
  184. Урок 184.00:08:42
    ContentResolver
  185. Урок 185.00:10:29
    Permissions API 22 and Earlier
  186. Урок 186.00:12:39
    Permissions API 23 and Higher
  187. Урок 187.00:12:56
    Checking Permissions at Runtime
  188. Урок 188.00:12:33
    Testing the app
  189. Урок 189.00:08:06
    Avoiding Crashes and a Challenge
  190. Урок 190.00:11:30
    More on Snackbars
  191. Урок 191.00:16:36
    Intents setData and Uri's
  192. Урок 192.00:10:11
    Storing State vs Checking State Each Time
  193. Урок 193.00:09:31
    Test Scripts, Challenge and Cleanup
  194. Урок 194.00:16:13
    Tasktimer App Overview
  195. Урок 195.00:11:41
    TaskTimer Database
  196. Урок 196.00:05:30
    TasksContract class setup
  197. Урок 197.00:15:37
    AppDatabase and SQLiteHelper
  198. Урок 198.00:13:01
    onUpgrade and testing
  199. Урок 199.00:18:04
    Create a new Content Provider
  200. Урок 200.00:20:01
    UriMatcher and the query method
  201. Урок 201.00:13:37
    More on Content Providers
  202. Урок 202.00:14:29
    Testing our Content Provider
  203. Урок 203.00:14:47
    Mime types and inserting records
  204. Урок 204.00:10:27
    Add Update and Delete functionality to our Content Provider
  205. Урок 205.00:23:23
    Content Values and SQL Injection attack prevention
  206. Урок 206.00:15:35
    Add Main Menu
  207. Урок 207.00:05:56
    How to update to a new SDK and Build Tools
  208. Урок 208.00:18:42
    Add RecyclerView and LinearLayout
  209. Урок 209.00:13:42
    Add Widgets and Constraints
  210. Урок 210.00:09:48
    Add the "add_edit" Layout
  211. Урок 211.00:07:19
    Set Widget Properties
  212. Урок 212.00:11:24
    Task and Fragment Setup
  213. Урок 213.00:13:28
    Reviewing Fragment Setup Files
  214. Урок 214.00:14:07
    Setup for "Add Task"
  215. Урок 215.00:11:22
    Add/Edit Functionality
  216. Урок 216.00:15:58
    Add our OnClick Listener
  217. Урок 217.00:15:11
    Cursor Loader
  218. Урок 218.00:11:34
    Test CursorLoader
  219. Урок 219.00:16:51
    RecyclerView Cursor Adapter
  220. Урок 220.00:17:58
    Finish Adapter and Test
  221. Урок 221.00:10:41
    Content Provider and notifyChange method
  222. Урок 222.00:08:56
    Test App and Challenge
  223. Урок 223.00:15:29
    Onclick Listeners and Callbacks
  224. Урок 224.00:11:28
    Changes to Listener
  225. Урок 225.00:07:46
    Test Edit, and Implement the Delete functionality
  226. Урок 226.00:11:48
    Fragments in the Layout
  227. Урок 227.00:10:56
    Alternative Landscape version of the Layout
  228. Урок 228.00:13:39
    Fragments in Code
  229. Урок 229.00:08:40
    Fragment Manager and Fragment Transaction
  230. Урок 230.00:10:28
    Passing Data to Fragments
  231. Урок 231.00:07:29
    Fix Edit Task In Portrait Mode
  232. Урок 232.00:17:13
    Removing Fragments
  233. Урок 233.00:07:19
    Removing Fragments Continued
  234. Урок 234.00:10:32
    Topics Covered to Date
  235. Урок 235.00:12:11
    Introduction to Dialogs
  236. Урок 236.00:14:56
    Creating Dialogs
  237. Урок 237.00:11:25
    More on Dialogs
  238. Урок 238.00:08:09
    Cancelling a Dialog
  239. Урок 239.00:08:35
    Adding a Delete Dialog To Our App
  240. Урок 240.00:14:26
    Testing the Dialog
  241. Урок 241.00:12:24
    Asserts & BuildConfig
  242. Урок 242.00:06:20
    OnDismissWeird Behavior
  243. Урок 243.00:14:24
    onBackPressed Method
  244. Урок 244.00:07:32
    Yagni and onClose
  245. Урок 245.00:09:15
    Using Multiple Dialogs
  246. Урок 246.00:16:16
    Dialogs and the Up Button
  247. Урок 247.00:16:38
    Creating an About Dialog
  248. Урок 248.00:12:21
    Finish off About Dialog
  249. Урок 249.00:12:08
    Displaying the About Dialog
  250. Урок 250.00:08:24
    Testing App and Fixing Errors
  251. Урок 251.00:09:09
    Versioning and build.gradle
  252. Урок 252.00:12:42
    Dismissing Dialogue Alternatives
  253. Урок 253.00:11:11
    Supporting Older Versions
  254. Урок 254.00:11:44
    Compatibility Challenge Solution
  255. Урок 255.00:08:52
    v21 Layout
  256. Урок 256.00:15:07
    Finish and Test
  257. Урок 257.00:11:11
    Using AppCompat Correctly
  258. Урок 258.00:09:13
    Fixing AppCompat Issue
  259. Урок 259.00:12:09
    Compatibility Libraries
  260. Урок 260.00:08:42
    Compatibility Challenge and AppCompat
  261. Урок 261.00:13:00
    The Fragment Lifecycle
  262. Урок 262.00:12:05
    Avoiding Duplicate Calls
  263. Урок 263.00:10:48
    Managing Fragments
  264. Урок 264.00:14:18
    Dynamic Display
  265. Урок 265.00:11:23
    Replacing AddEditActivity
  266. Урок 266.00:08:18
    Finishing Fragments
  267. Урок 267.00:06:10
    Remove Warnings and Challenge
  268. Урок 268.00:12:38
    Challenge Solution
  269. Урок 269.00:07:47
    Completion of Challenge
  270. Урок 270.00:16:28
    Retaining Fragment Instances
  271. Урок 271.00:13:46
    More on Retaining Fragments
  272. Урок 272.00:07:23
    Task Timings
  273. Урок 273.00:12:36
    Create Timings Task
  274. Урок 274.00:11:20
    RecyclerView Item Click Listener
  275. Урок 275.00:13:09
    NonNull Annotation
  276. Урок 276.00:09:27
    Timings Contract Class
  277. Урок 277.00:07:12
    Update Content Provider for Timings
  278. Урок 278.00:18:18
    Recap
  279. Урок 279.00:14:37
    Database Updates
  280. Урок 280.00:19:36
    Saving the Timing Data
  281. Урок 281.00:12:49
    Create Test Data
  282. Урок 282.00:09:08
    Save Test Records
  283. Урок 283.00:10:22
    Generate Test Records
  284. Урок 284.00:09:33
    Debug and Release Builds
  285. Урок 285.00:12:16
    Using a SQLite View
  286. Урок 286.00:12:45
    Adding the View to the Database
  287. Урок 287.00:09:37
    Testing Database Upgrades
  288. Урок 288.00:08:08
    Constraint Layout Chains
  289. Урок 289.00:15:35
    Chain Types
  290. Урок 290.00:10:02
    Finishing Portrait Layouts
  291. Урок 291.00:08:58
    The Landscape Layouts
  292. Урок 292.00:16:28
    The Report Adapter
  293. Урок 293.00:11:45
    The Durations Report Activity
  294. Урок 294.00:08:20
    Loading the Data
  295. Урок 295.00:12:46
    Vector Drawables and Asset Studio
  296. Урок 296.00:04:51
    The Report Menu
  297. Урок 297.00:10:18
    Report Menu Code
  298. Урок 298.00:10:31
    Apply Filter
  299. Урок 299.00:08:23
    Finish Filter and Test
  300. Урок 300.00:06:13
    Testing in Different Locales
  301. Урок 301.00:17:10
    The Date Picker Dialog
  302. Урок 302.00:12:46
    Filtering by Date
  303. Урок 303.00:14:08
    Build Gradle and Updating API Level
  304. Урок 304.00:09:14
    Updating Support Libraries
  305. Урок 305.00:06:18
    Update Build Gradle File
  306. Урок 306.00:17:16
    Evil Bugs
  307. Урок 307.00:10:41
    Unbuggy Date Picker Dialog
  308. Урок 308.00:12:17
    Delete Old Timings Data
  309. Урок 309.00:10:25
    Testing and Challenge
  310. Урок 310.00:14:12
    Challenge Solution
  311. Урок 311.00:09:08
    Sorting the Report
  312. Урок 312.00:04:49
    Bonus Lecture and Information