Этот материал находится в платной подписке. Оформи премиум подписку и смотри или слушай Android Java Masterclass - Become an App Developer, а также все другие курсы, прямо сейчас!
Премиум
  • Урок 1. 00:02:13
    Welcome
  • Урок 2. 00:05:56
    Interface Overview
  • Урок 3. 00:19:22
    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:14:04
    Hello World
  • Урок 15. 00:16:40
    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:02:28
    Introduction
  • Урок 20. 00:11:40
    Setup Play Project
  • Урок 21. 00:17:07
    The Constraint Layout
  • Урок 22. 00:15:18
    Constraints and Resizing
  • Урок 23. 00:07:53
    Positioning Widgets
  • Урок 24. 00:09:34
    Inner Lines within a Widget
  • Урок 25. 00:11:01
    Layouts on Different Devices
  • Урок 26. 00:12:49
    More on the Constraints
  • Урок 27. 00:09:56
    Baseline Constraints
  • Урок 28. 00:05:38
    Constraining Widgets
  • Урок 29. 00:13:33
    Add Scrolling Capabilities
  • Урок 30. 00:14:51
    The Button Counter App
  • Урок 31. 00:12:19
    Finish Layout
  • Урок 32. 00:14:04
    Activites, Bundles and Classes
  • Урок 33. 00:13:11
    Java Fields and Classes
  • Урок 34. 00:04:51
    Asking good questions
  • Урок 35. 00:11:34
    Button Click and onClickListener
  • Урок 36. 00:13:58
    Fixing Some Issues
  • Урок 37. 00:13:07
    Get Text and Null Checking
  • Урок 38. 00:09:16
    ID Confusion and Challenge Time
  • Урок 39. 00:08:08
    Save Instance State
  • Урок 40. 00:05:54
    Activity Lifecycle
  • Урок 41. 00:11:42
    Overriding Methods
  • Урок 42. 00:15:03
    Logging and Bundle Data
  • Урок 43. 00:07:01
    Wrap Up
  • Урок 44. 00:01:28
    Introduction to this section
  • Урок 45. 00:16:32
    Hello World
  • Урок 46. 00:14:59
    Strings and Ints
  • Урок 47. 00:15:01
    Arithmetic and String Concatenation
  • Урок 48. 00:16:54
    Classes
  • Урок 49. 00:16:12
    Encapsulation
  • Урок 50. 00:15:15
    Multiple Constructors
  • Урок 51. 00:15:31
    this and Calling Methods
  • Урок 52. 00:17:51
    Object and Method Chaining
  • Урок 53. 00:18:26
    Enum and ArrayList
  • Урок 54. 00:14:11
    Testing Our Classes
  • Урок 55. 00:14:47
    Inheritance
  • Урок 56. 00:08:57
    Extending From a Class
  • Урок 57. 00:14:26
    Overloading and Overriding Annotation
  • Урок 58. 00:07:15
    Inheritance Challenge
  • Урок 59. 00:14:25
    Repeating Code While
  • Урок 60. 00:14:24
    for and for each Loops
  • Урок 61. 00:05:42
    do while Loop
  • Урок 62. 00:14:51
    Comparing Numbers and Objects
  • Урок 63. 00:01:20
    Introduction to this section
  • Урок 64. 00:04:53
    Demo Calculator App
  • Урок 65. 00:15:37
    Calculator Interface Setup
  • Урок 66. 00:16:30
    Continue with Interface
  • Урок 67. 00:15:29
    Fine Tuning the Layout
  • Урок 68. 00:09:02
    Create Landscape Layout
  • Урок 69. 00:17:13
    Comparing Files with Diff
  • Урок 70. 00:08:30
    Comparing Directories
  • Урок 71. 00:14:01
    Flowchart and onClickListeners
  • Урок 72. 00:08:00
    Operation Button Listeners
  • Урок 73. 00:12:02
    Implement Operations
  • Урок 74. 00:12:35
    Decimal Point Bug Fix
  • Урок 75. 00:10:21
    Bug Fix Challenge
  • Урок 76. 00:13:54
    Guidelines
  • Урок 77. 00:12:41
    Fixing Landscape Layout
  • Урок 78. 00:07:17
    Add Neg Button to Layout
  • Урок 79. 00:09:09
    Write Neg Button Functionality
  • Урок 80. 00:19:05
    Add Neg Button to Portrait
  • Урок 81. 00:01:35
    Introduction to this section
  • Урок 82. 00:10:48
    Introduction
  • Урок 83. 00:13:07
    Async Task
  • Урок 84. 00:05:55
    Exectute Our Async Task
  • Урок 85. 00:12:26
    doInBackground and downloadXML
  • Урок 86. 00:11:59
    Exceptions and Buffered Reader
  • Урок 87. 00:10:04
    Security Exception
  • Урок 88. 00:08:09
    Stack Trace and the logcat
  • Урок 89. 00:13:01
    Android App Permissions
  • Урок 90. 00:11:39
    Processing XML Data
  • Урок 91. 00:09:30
    XML Parsing Factory Classes
  • Урок 92. 00:12:41
    Main XML Parsing Loop
  • Урок 93. 00:12:45
    Testing the Program
  • Урок 94. 00:13:19
    ListView and Array Adapters
  • Урок 95. 00:08:31
    Array Adapter
  • Урок 96. 00:11:44
    Create Custom Adapter
  • Урок 97. 00:11:21
    Context and Layout Inflater
  • Урок 98. 00:12:37
    Custom Adapter Implementation
  • Урок 99. 00:10:56
    Improving the Adapter
  • Урок 100. 00:09:35
    ViewHolder Pattern
  • Урок 101. 00:10:26
    Adding a Menu​
  • Урок 102. 00:07:12
    Get Menus for Multiple Feeds Working
  • Урок 103. 00:10:43
    Menu Groups
  • Урок 104. 00:12:50
    Implement Top 10 and Top 25
  • Урок 105. 00:17:11
    Challenge Solution
  • Урок 106. 00:04:02
    Generics Adapter
  • Урок 107. 00:01:49
    Introduction to this section
  • Урок 108. 00:03:18
    Details and Setup
  • Урок 109. 00:10:48
    YouTube API Setup
  • Урок 110. 00:10:59
    Add Second Activity
  • Урок 111. 00:15:02
    Adding Layouts Dynamically
  • Урок 112. 00:15:38
    Get Google API Key
  • Урок 113. 00:12:18
    onInitialization Failure
  • Урок 114. 00:06:32
    onInitialization Success
  • Урок 115. 00:09:42
    Test App and Add Listeners
  • Урок 116. 00:06:56
    Documentation and more testing
  • Урок 117. 00:12:08
    Demo App and Create Layouts
  • Урок 118. 00:12:31
    Standalone Activity
  • Урок 119. 00:13:11
    Intents and Manifest File Changes
  • Урок 120. 00:07:57
    Run and Test App
  • Урок 121. 00:07:00
    Challenge Solution
  • Урок 122. 00:01:31
    Introduction to this section
  • Урок 123. 00:12:50
    Details and Setup
  • Урок 124. 00:12:51
    Flickr API Usage
  • Урок 125. 00:07:45
    API JSON and Validation
  • Урок 126. 00:16:50
    Create Project
  • Урок 127. 00:14:56
    Async Task
  • Урок 128. 00:15:06
    Finish Download Code
  • Урок 129. 00:18:43
    Download JSON Data
  • Урок 130. 00:13:12
    Project Diagram and Photo Class Code
  • Урок 131. 00:12:23
    Get Flickr JSON Data Class Code
  • Урок 132. 00:15:35
    Create URI and JSON Parsing
  • Урок 133. 00:13:17
    Implement Call Backs
  • Урок 134. 00:16:04
    Make Get JSON Asyncronous
  • Урок 135. 00:11:32
    Finish Off Code
  • Урок 136. 00:12:20
    User Interface
  • Урок 137. 00:19:21
    Recycler View
  • Урок 138. 00:12:15
    Search and Photo Detail Activities
  • Урок 139. 00:11:09
    Nesting Linear Layouts
  • Урок 140. 00:16:29
    RecyclerView Adapter
  • Урок 141. 00:15:45
    Implement Methods and Picasso
  • Урок 142. 00:11:13
    Get Picasso Working
  • Урок 143. 00:13:30
    Gesture Detector
  • Урок 144. 00:11:21
    Touch Events
  • Урок 145. 00:10:44
    Implementing Touch Methods
  • Урок 146. 00:15:47
    BaseActivity and Serializable
  • Урок 147. 00:15:29
    PhotoDetailActivity
  • Урок 148. 00:16:02
    Material Design
  • Урок 149. 00:09:46
    Material Design Continued
  • Урок 150. 00:09:58
    Backwards Compatibility
  • Урок 151. 00:13:13
    Style Sheets
  • Урок 152. 00:13:37
    Custom Style Sheet
  • Урок 153. 00:09:38
    Experimenting with Styles
  • Урок 154. 00:13:02
    Other Material Design Changes
  • Урок 155. 00:11:53
    Differences in API Levels and Challenge
  • Урок 156. 00:16:36
    String Resources
  • Урок 157. 00:13:12
    Search Menu Code
  • Урок 158. 00:14:57
    SearchView
  • Урок 159. 00:14:47
    SearchManager
  • Урок 160. 00:11:56
    Implement Searching
  • Урок 161. 00:09:26
    Shared Preferences
  • Урок 162. 00:08:22
    Show Empty Search Message and Summary
  • Урок 163. 00:01:58
    Introduction to this section
  • Урок 164. 00:05:07
    Introduction to Databases
  • Урок 165. 00:10:43
    Database Terminology
  • Урок 166. 00:09:42
    Command Line and Path Setup for Windows
  • Урок 167. 00:08:07
    Command Line and Path Setup for Mac
  • Урок 168. 00:06:18
    Command Line and Path Setup for Ubuntu Linux
  • Урок 169. 00:11:16
    Introduction to Sqlite
  • Урок 170. 00:10:46
    More SQL with Sqlite
  • Урок 171. 00:16:07
    Sqlite Querying Data
  • Урок 172. 00:13:19
    Order By and Joins
  • Урок 173. 00:11:52
    More Complex Joins
  • Урок 174. 00:15:18
    Wild Cards and Views
  • Урок 175. 00:14:24
    Housekeeping and Challenge
  • Урок 176. 00:16:43
    Basic SQL in Android
  • Урок 177. 00:10:59
    Debugging SQL in Code
  • Урок 178. 00:06:32
    Cursor and Navigation
  • Урок 179. 00:16:55
    Android File System
  • Урок 180. 00:02:56
    Content Providers
  • Урок 181. 00:12:00
    Setup Contacts
  • Урок 182. 00:12:18
    Content Provider Example
  • Урок 183. 00:11:01
    ContactsContract.Contacts
  • Урок 184. 00:08:42
    ContentResolver
  • Урок 185. 00:10:29
    Permissions API 22 and Earlier
  • Урок 186. 00:12:39
    Permissions API 23 and Higher
  • Урок 187. 00:12:56
    Checking Permissions at Runtime
  • Урок 188. 00:12:33
    Testing the app
  • Урок 189. 00:08:06
    Avoiding Crashes and a Challenge
  • Урок 190. 00:11:30
    More on Snackbars
  • Урок 191. 00:16:36
    Intents setData and Uri's
  • Урок 192. 00:10:11
    Storing State vs Checking State Each Time
  • Урок 193. 00:09:31
    Test Scripts, Challenge and Cleanup
  • Урок 194. 00:16:13
    Tasktimer App Overview
  • Урок 195. 00:11:41
    TaskTimer Database
  • Урок 196. 00:05:30
    TasksContract class setup
  • Урок 197. 00:15:37
    AppDatabase and SQLiteHelper
  • Урок 198. 00:13:01
    onUpgrade and testing
  • Урок 199. 00:18:04
    Create a new Content Provider
  • Урок 200. 00:20:01
    UriMatcher and the query method
  • Урок 201. 00:13:37
    More on Content Providers
  • Урок 202. 00:14:29
    Testing our Content Provider
  • Урок 203. 00:14:47
    Mime types and inserting records
  • Урок 204. 00:10:27
    Add Update and Delete functionality to our Content Provider
  • Урок 205. 00:23:23
    Content Values and SQL Injection attack prevention
  • Урок 206. 00:15:35
    Add Main Menu
  • Урок 207. 00:05:56
    How to update to a new SDK and Build Tools
  • Урок 208. 00:18:42
    Add RecyclerView and LinearLayout
  • Урок 209. 00:13:42
    Add Widgets and Constraints
  • Урок 210. 00:09:48
    Add the "add_edit" Layout
  • Урок 211. 00:07:19
    Set Widget Properties
  • Урок 212. 00:11:24
    Task and Fragment Setup
  • Урок 213. 00:13:28
    Reviewing Fragment Setup Files
  • Урок 214. 00:14:07
    Setup for "Add Task"
  • Урок 215. 00:11:22
    Add/Edit Functionality
  • Урок 216. 00:15:58
    Add our OnClick Listener
  • Урок 217. 00:15:11
    Cursor Loader
  • Урок 218. 00:11:34
    Test CursorLoader
  • Урок 219. 00:16:51
    RecyclerView Cursor Adapter
  • Урок 220. 00:17:58
    Finish Adapter and Test
  • Урок 221. 00:10:41
    Content Provider and notifyChange method
  • Урок 222. 00:08:56
    Test App and Challenge
  • Урок 223. 00:15:29
    Onclick Listeners and Callbacks
  • Урок 224. 00:11:28
    Changes to Listener
  • Урок 225. 00:07:46
    Test Edit, and Implement the Delete functionality
  • Урок 226. 00:11:48
    Fragments in the Layout
  • Урок 227. 00:10:56
    Alternative Landscape version of the Layout
  • Урок 228. 00:13:39
    Fragments in Code
  • Урок 229. 00:08:40
    Fragment Manager and Fragment Transaction
  • Урок 230. 00:10:28
    Passing Data to Fragments
  • Урок 231. 00:07:29
    Fix Edit Task In Portrait Mode
  • Урок 232. 00:17:13
    Removing Fragments
  • Урок 233. 00:07:19
    Removing Fragments Continued
  • Урок 234. 00:10:32
    Topics Covered to Date
  • Урок 235. 00:12:11
    Introduction to Dialogs
  • Урок 236. 00:14:56
    Creating Dialogs
  • Урок 237. 00:11:25
    More on Dialogs
  • Урок 238. 00:08:09
    Cancelling a Dialog
  • Урок 239. 00:08:35
    Adding a Delete Dialog To Our App
  • Урок 240. 00:14:26
    Testing the Dialog
  • Урок 241. 00:12:24
    Asserts & BuildConfig
  • Урок 242. 00:06:20
    OnDismissWeird Behavior
  • Урок 243. 00:14:24
    onBackPressed Method
  • Урок 244. 00:07:32
    Yagni and onClose
  • Урок 245. 00:09:15
    Using Multiple Dialogs
  • Урок 246. 00:16:16
    Dialogs and the Up Button
  • Урок 247. 00:16:38
    Creating an About Dialog
  • Урок 248. 00:12:21
    Finish off About Dialog
  • Урок 249. 00:12:08
    Displaying the About Dialog
  • Урок 250. 00:08:24
    Testing App and Fixing Errors
  • Урок 251. 00:09:09
    Versioning and build.gradle
  • Урок 252. 00:12:42
    Dismissing Dialogue Alternatives
  • Урок 253. 00:11:11
    Supporting Older Versions
  • Урок 254. 00:11:44
    Compatibility Challenge Solution
  • Урок 255. 00:08:52
    v21 Layout
  • Урок 256. 00:15:07
    Finish and Test
  • Урок 257. 00:11:11
    Using AppCompat Correctly
  • Урок 258. 00:09:13
    Fixing AppCompat Issue
  • Урок 259. 00:12:09
    Compatibility Libraries
  • Урок 260. 00:08:42
    Compatibility Challenge and AppCompat
  • Урок 261. 00:13:00
    The Fragment Lifecycle
  • Урок 262. 00:12:05
    Avoiding Duplicate Calls
  • Урок 263. 00:10:48
    Managing Fragments
  • Урок 264. 00:14:18
    Dynamic Display
  • Урок 265. 00:11:23
    Replacing AddEditActivity
  • Урок 266. 00:08:18
    Finishing Fragments
  • Урок 267. 00:06:10
    Remove Warnings and Challenge
  • Урок 268. 00:12:38
    Challenge Solution
  • Урок 269. 00:07:47
    Completion of Challenge
  • Урок 270. 00:16:28
    Retaining Fragment Instances
  • Урок 271. 00:13:46
    More on Retaining Fragments
  • Урок 272. 00:07:23
    Task Timings
  • Урок 273. 00:12:36
    Create Timings Task
  • Урок 274. 00:11:20
    RecyclerView Item Click Listener
  • Урок 275. 00:13:09
    NonNull Annotation
  • Урок 276. 00:09:27
    Timings Contract Class
  • Урок 277. 00:07:12
    Update Content Provider for Timings
  • Урок 278. 00:18:18
    Recap
  • Урок 279. 00:14:37
    Database Updates
  • Урок 280. 00:19:36
    Saving the Timing Data
  • Урок 281. 00:12:49
    Create Test Data
  • Урок 282. 00:09:08
    Save Test Records
  • Урок 283. 00:10:22
    Generate Test Records
  • Урок 284. 00:09:33
    Debug and Release Builds
  • Урок 285. 00:12:16
    Using a SQLite View
  • Урок 286. 00:12:45
    Adding the View to the Database
  • Урок 287. 00:09:37
    Testing Database Upgrades
  • Урок 288. 00:08:08
    Constraint Layout Chains
  • Урок 289. 00:15:35
    Chain Types
  • Урок 290. 00:10:02
    Finishing Portrait Layouts
  • Урок 291. 00:08:58
    The Landscape Layouts
  • Урок 292. 00:16:28
    The Report Adapter
  • Урок 293. 00:11:45
    The Durations Report Activity
  • Урок 294. 00:08:20
    Loading the Data
  • Урок 295. 00:12:46
    Vector Drawables and Asset Studio
  • Урок 296. 00:04:51
    The Report Menu
  • Урок 297. 00:10:18
    Report Menu Code
  • Урок 298. 00:10:31
    Apply Filter
  • Урок 299. 00:08:23
    Finish Filter and Test
  • Урок 300. 00:06:13
    Testing in Different Locales
  • Урок 301. 00:17:10
    The Date Picker Dialog
  • Урок 302. 00:12:46
    Filtering by Date
  • Урок 303. 00:14:08
    Build Gradle and Updating API Level
  • Урок 304. 00:09:14
    Updating Support Libraries
  • Урок 305. 00:06:18
    Update Build Gradle File
  • Урок 306. 00:17:16
    Evil Bugs
  • Урок 307. 00:10:41
    Unbuggy Date Picker Dialog
  • Урок 308. 00:12:17
    Delete Old Timings Data
  • Урок 309. 00:10:25
    Testing and Challenge
  • Урок 310. 00:14:12
    Challenge Solution
  • Урок 311. 00:09:08
    Sorting the Report
  • Урок 312. 00:04:49
    Bonus Lecture and Information