The Learn Programming AcademyThe Learn Programming Academy
  • Home
  • Courses
  • Meet The Team
  • Blog
  • About Us
  • Contact
  • Home
  • Courses
  • Meet The Team
  • Blog
  • About Us
  • Contact

Mobile Development

  • Home
  • All courses
  • Mobile Development
  • Android App Development Masterclass using Kotlin

Android App Development Masterclass using Kotlin

Learn Kotlin Android App Development And Become an Android Developer. Incl. Kotlin Tutorial and Android Tutorial Videos

mm
Tim Buchalka
Mobile Development
(5,771 reviews)
Take this course
  • Overview
  • Curriculum
  • Instructor
  • Reviews

What do you get in this course?

In this course, you will discover the power of Android app development, and obtain the skills to dramatically increase your career prospects as a software developer. You’ll also have a head start over other developers using obsolete tools and earlier versions of Android.

Android is continually being updated and you’ll learn how to target but users of current versions of Android and older versions as well.

With this course, you get the best of both worlds. You’re taught to write code for Android that works with the current version and older versions of Android by using the AppCompat library. That way, the apps you build will work with more versions of Android, giving you access to a wider audience of users.

Starting is easy because no previous programming experience is needed. NONE! If you do have it, great. Or maybe you just want to brush up on your Android development skills, and that’s fantastic too.

The course is presented using a combination of video, slides and diagrams, all designed to teach you everything you need to know.

Here is what just one student thinks about the course.

“If you are thinking of learning how to develop an Android app, you should be doing this course. It is comprehensive and covers so many aspects of programming an Android app. The best part is that Tim explains and teaches you how to become an independent developer.    Since completing this course, I have gone on and developed my own application, which is now published on the Google Play Store! Developing an app takes patience, and it is definitely worthwhile going through all the content in this course.” – Daniel Lee

Should you write Android apps that target only the very latest version of Android?

If you have an iPhone or iPad, chances are high that you update each year to the latest iOS release – most users do.

The situation is completely different with Android. Only a relatively small percentage of Android users update their phones annually.

If you write your apps to only support the latest version of Android, you will ensure 95% of your potential user base will never see your app.  The Google app store will only show apps that a users Android device can run, so if their device is not running the latest version of Android, they won’t even be able to find your app on the Google play app store!

How do you make sure your app targets older versions of Android?

Android development is less about making sure you are creating apps that work with the latest version of Android, and more about ensuring your apps work with whatever versions of Android your users are running.

Google are aware of this problem and have something call the AppCompat library.  Which is a way for you to ensure your apps work on older devices.

This is not enabled by default.  Meaning that if you do not specifically configure your app to use this library and target older devices and newer ones, it either won’t show up at all for users searching for your app, or older Android devices running your app might crash because they are trying to access features that do not exist in their version of Android.

The key is to use this library.  And that’s what you will learn in this course.

Does that mean that your apps can only use features from really old Android versions?

No it does not.  The AppCompat library is constantly updated by Google.  They go back and add features to the library which allows older Android devices to access newer features of Android.

But again, this is not turned on by default.  You have to create and write your Android apps in a particular way to have your Android app be able to work correctly for current and older versions of Android.

Should you learn Kotlin?

Now that Google are pushing so hard for Android developers to use Kotlin, we are seeing a dramatic shift to Kotlin – It’s similar to the iOS situation a few years ago with Objective-C when Apple released Swift.

Fast forward a few years and everyone is using Swift.  This is starting to happen with Android app development. Developers who used to use  Java are switching to Kotlin.  You can see why Google want this to happen.  They have been in court numerous times with Oracle (the owners of Java) relating to a dispute over the use of the Java language.

Google want developers to adopt Kotlin so that they don’t have to worry about Java any more.

The recent Google I/O conference show mainly Kotlin code examples.  You can see where we are heading.  Kotlin is the future for Android app development.

Soon there will be few Java developers writing Android apps – they will be using Kotlin.

The good news is, we’ve bundled a complete Kotlin tutorial we wrote from scratch with the course.  So not only do we use Kotlin in this course (teaching best practices along the way), but we also include a complete Kotlin tutorial as well. You will learn how to use the Kotlin language in this course.

This is what you’ll learn in the course:

·      Develop apps for the very latest version of Android that also work on older Android devices running older versions of the Android operating system.

·      Download, install and configure the necessary (free) software.

·      Create your first app.

·      Build a range of apps demonstrating key aspects of the Android framework.

·      Test your apps on emulators or a real Android phone or tablet.

·      You’ll learn Kotlin programming because Google are recommending and pushing adoption of Kotlin for Android app development.  Included are Kotlin tutorial videos that will get you up to speed fast.

·      Ensure your apps work with current and older Android versions on phones and tablets.

·      Use Android studio 3.2, the newest version of Google’s premier Android tool.

·      Learn how to use databases, web services, and even get your apps to speak!

·      Understand the all new Constraint layout, for “drag and drop” screen creation.

·      Use powerful libraries of code to play videos, download website data, manipulate images, and a whole lot more!

To reinforce what you’ve learnt during the course, there are numerous challenges designed to help you understand each concept being taught. You’re also shown the solution to the challenge so you know you’re always on the right track.

The course is continually updated and enhanced, and fully supported as it evolves.

With many courses, it’s just set and forget. But not with this one! We’ve got a PROVEN track record of continually updating and adding new content. An example is Tim’s Java Masterclass course which now has 77 hours of content and counting, and benefited a whopping 260,000 students.

And if you have any doubts about the course, be blown away by the glowing reviews left by students on this page.

What else will you learn?

You will  learn how Android works at a deep level. Many courses show you how to create Android apps, allowing you to follow along clicking buttons but not really understanding what it happening.

To become a successful Android app developer, you need to understand why you are clicking that button, and how the Android operating system works and how the Android SDK and Framework works.

If you truly understand how something works, it means you can produce better quality apps, that have fewer bugs.

We don’t promise that you are going to write a Facebook or Instagram clone app in this course – Courses that say they are going to teach you to create apps like that show apps with only the smallest amount of functionality, and usually don’t explain anything in detail.  There is no point going through Android training unless you can take that training and apply it into your own apps.

This course is designed for you to follow along, but then to apply the information you have learned into your own apps.

Your instructors are me, Tim Buchalka and Jean-Paul Roberts. Between them theyhave a collective 70 years of commercial software development experience, meaning you’re learning the right way to program to maximize your future development potential.

Here’s what’s important. There’re a lot of people teaching Android development who are not developers. We’re developers with many years’ experience with the Android platform, who also teach Android.

Importantly, our courses teach students the real-life skills needed to get those in-demand jobs or further your programming skills.

Take this course in confidence today knowing you have just found the BEST Android Kotlin course on Udemy!  Don’t delay. Every minute you’re not learning Android is a missed opportunity for that PERFECT high paying job.

Click the BUY NOW button and start learning. The world needs your new apps!

Requirements

  • A Windows computer, a Mac, or a Linux machine so that the free Google Android Studio tool can be downloaded and install (full instructions included).
  • An open mind to learn something new and exciting which may make a huge difference in your future career.
  • Everything else needed to write apps for Android 8 Oreo with Kotlin is already included in the course.

What you will learn

  • Learn the core Android app development and Kotlin skills to build real Android apps.
  • Learn how to target current and older versions of Android when writing your apps.
  • Understand how to create Android apps using Kotlin.
  • Be able to apply for Android app development roles.

Who should attend

  • This course is perfect for absolute beginners with no previous programming experience.
  • However, if you’re already an expert Android Kotlin programmer with knowledge of all the latest updates, then this course is not for you.
  • Existing Android Java Programmers who want to transition to Kotlin for Android app development.

Is available on google app?

Yes

Is available on ios?

Yes

Course Features

  • Lectures 382
  • Quizzes 0
  • Exercises 0
  • Duration 62 total hours
  • Skill level Beginner Level
  • Students 38768
  • Last Updated February, 2023
  • Introduction and Course Information 29:03

    • Lecture
      Introduction 01:53
    • Lecture
      The Udemy Interface 06:08
    • Lecture
      Introduction to Android 19:21
    • Lecture
      FAQ 01:41
  • Downloading and Installing the Necessary Tools 58:27

    • Lecture
      Windows - Install Android Studio 11:18
    • Lecture
      Mac - Install Android Studio 06:35
    • Lecture
      Linux - Install Android Studio 11:35
    • Lecture
      Configure Android SDK on all Three Platforms 12:04
    • Lecture
      Android Studio Settings 03:01
    • Lecture
      Enable VT-X in BIOS 13:54
  • Hello World Android App 01:27:14

    • Lecture
      Your Programming Careers Questions Answered 01:53
    • Lecture
      Access to Programming Career Q&A 00:28
    • Lecture
      Introduction 00:40
    • Lecture
      Android Studio Templates 08:01
    • Lecture
      FAQ: Templates in Android Studio 3.6 and later 00:37
    • Lecture
      More on Android Templates 08:25
    • Lecture
      Hello World 12:42
    • Lecture
      Tour of Android Studio 16:30
    • Lecture
      Setting Up a Virtual Device 15:11
    • Lecture
      FAQ: Emulators on Windows 10 with AMD processor 00:31
    • Lecture
      Running on an emulator 09:50
    • Lecture
      Running on a physical Android device 12:26
  • Kotlin Tutorials 04:32:57

    • Lecture
      FAQ for Android Studio 3.3 01:37
    • Lecture
      Kotlin Tutorial Setup 10:32
    • Lecture
      Kotlin Tutorial 1 09:09
    • Lecture
      Variables and Types 11:26
    • Lecture
      More on Variables and Types 11:49
    • Lecture
      String Concatenation and Interpolation 12:35
    • Lecture
      val and var and more on Declarations 10:19
    • Lecture
      Conditions 17:58
    • Lecture
      Classes 19:34
    • Lecture
      Objects and Instances 14:53
    • Lecture
      Challenge 06:24
    • Lecture
      Lists 10:25
    • Lecture
      More on Lists 12:00
    • Lecture
      toString Challenge 04:24
    • Lecture
      for Loops 14:07
    • Lecture
      for Encapsulation and Private Properties 13:19
    • Lecture
      Overloading Functions 08:13
    • Lecture
      Inheritance 12:50
    • Lecture
      More on Inheritance 10:10
    • Lecture
      Inheritance Continued 09:11
    • Lecture
      Further Inheritance 09:51
    • Lecture
      while Loops 14:17
    • Lecture
      for Loop Revisited 10:03
    • Lecture
      do while Loop 05:14
    • Lecture
      Loop Challenge 12:37
  • The Button Counter App 04:45:21

    • Lecture
      Introduction 02:27
    • Lecture
      Setup Play Project 11:39
    • Lecture
      The Constraint Layout 17:06
    • Lecture
      Constraints and Resizing 15:17
    • Lecture
      Positioning Widgets 07:52
    • Lecture
      Inner Lines within a Widget 09:33
    • Lecture
      Layouts on Different Devices 11:00
    • Lecture
      More on the Constraints 12:48
    • Lecture
      Layout Designer rendering error 01:52
    • Lecture
      FAQ: Baseline Constraints change 00:10
    • Lecture
      Baseline Constraints 09:55
    • Lecture
      Constraining Widgets 05:37
    • Lecture
      Add Scrolling Capabilities 13:32
    • Lecture
      The Button Counter App 14:50
    • Lecture
      Finish Layout 12:18
    • Lecture
      Coding Button Counter App 13:49
    • Lecture
      findViewById and r Class 12:46
    • Lecture
      Events and setonclicklistener 08:03
    • Lecture
      Testing and Challenge Time 14:10
    • Lecture
      Extending the Button App 10:36
    • Lecture
      Testing and Challenge 06:53
    • Lecture
      Do you need to download the Java development Kit? 00:18
    • Lecture
      Fixing Kotlin Gradle Issues 03:58
    • Lecture
      The Activity Lifecycle 15:18
    • Lecture
      The Logcat Pane 09:04
    • Lecture
      Logging the Activity Lifecycle 09:34
    • Lecture
      Activity Lifecycle in Action 14:32
    • Lecture
      Java Development Kit for Windows (32Bit Users Only!) 05:15
    • Lecture
      Saving and Restoring Instance State 15:09
  • Calculator App 04:01:26

    • Lecture
      Demo Calculator App 04:51
    • Lecture
      Calculator Interface Setup 15:36
    • Lecture
      Continue with Interface 16:29
    • Lecture
      Fine Tuning the Layout 15:28
    • Lecture
      Create Landscape Layout 09:01
    • Lecture
      Java Development Kit for Linux (32Bit Users Only!) 04:20
    • Lecture
      Comparing FIles with Diff 17:12
    • Lecture
      Comparing Directories 08:29
    • Lecture
      Coding the Calculator 23:15
    • Lecture
      Add onClickListeners 07:04
    • Lecture
      Write Perform Operation Function 16:45
    • Lecture
      Bug Fix and Code Improvements 14:13
    • Lecture
      Bug Fix Challlenge and Save State 19:52
    • Lecture
      Widget References in Kotlin 07:28
    • Lecture
      Guidelines 13:53
    • Lecture
      Fixing Landscape Layout 12:40
    • Lecture
      Add Neg Button to Layout 07:16
    • Lecture
      Code Changes for Neg Button 08:30
    • Lecture
      Add Neg Button to Portrait 19:04
  • The Top 10 Downloader App 05:13:49

    • Lecture
      Introduction 10:47
    • Lecture
      AsyncTask 14:39
    • Lecture
      Logging and Logcat 09:00
    • Lecture
      Important note for API 28 (and higher) and the Top 10 Downloader 00:22
    • Lecture
      Download the RSS Feed 14:38
    • Lecture
      Reading the Data 20:05
    • Lecture
      Android Permissions 20:03
    • Lecture
      Writing Idiomatic Kotlin 15:00
    • Lecture
      More Idiomatic Kotlin 07:05
    • Lecture
      Parsing the Data 19:06
    • Lecture
      Create Xml Parse Function 15:08
    • Lecture
      Testing the App 10:11
    • Lecture
      ListView and ArrayAdapter 13:18
    • Lecture
      Code Changes for Array Adapter 17:02
    • Lecture
      onDestroy and Asynctask 07:31
    • Lecture
      Create Custom Adapter 11:43
    • Lecture
      Custom Adapter Code 17:19
    • Lecture
      Improving the Adapter 12:41
    • Lecture
      ViewHolder Pattern 12:09
    • Lecture
      Adding a Menu - Layout 08:59
    • Lecture
      Adding A Menu - Code 16:05
    • Lecture
      Menu Groups - Layout 09:31
    • Lecture
      Menu Groups - Code 15:56
    • Lecture
      Challenge Solution 15:31
  • The YouTube app 02:40:58

    • Lecture
      Setup 17:54
    • Lecture
      YouTube Activity 13:26
    • Lecture
      Adding Widgets Dynamically 09:59
    • Lecture
      Google API Key 11:41
    • Lecture
      Add Key to Code 07:57
    • Lecture
      The YouTube Player 13:33
    • Lecture
      onInitializationSuccess Method 13:11
    • Lecture
      Adding Listeners 10:43
    • Lecture
      Improving the Player 06:24
    • Lecture
      Extending App Layouts 05:28
    • Lecture
      Extending Youtube App Code 12:29
    • Lecture
      Implementing Intents and Challenge 17:53
    • Lecture
      Challenge Solution 05:10
    • Lecture
      More Error Handling 15:10
  • Flickr Browser App 08:18:37

    • Lecture
      Introduction 04:06
    • Lecture
      Flick App and Feeds 15:36
    • Lecture
      Json and Mini challenge 13:38
    • Lecture
      Log Tag and Companion Objects 15:39
    • Lecture
      Kotlin top-level constants 01:02
    • Lecture
      Download JSON - doInBackground 12:13
    • Lecture
      Downloading the JSON 13:28
    • Lecture
      CallBacks 16:14
    • Lecture
      Project Diagram and Photo Class 08:21
    • Lecture
      GetFlickJsonData class 20:06
    • Lecture
      GetFlickrJsonData class continued 18:35
    • Lecture
      Uri Builder 12:02
    • Lecture
      Flickr Browser User Inferface 12:07
    • Lecture
      RecyclerView Layouts 15:09
    • Lecture
      Finishing Browse Layout 05:43
    • Lecture
      Search and PhotoDetail Activities 08:44
    • Lecture
      Nested Layouts 15:58
    • Lecture
      Recyclerview Adapter 17:28
    • Lecture
      onBindViewHolder and Picasso 14:12
    • Lecture
      Associate Adapter to Recyclerview 06:54
    • Lecture
      RecyclerItemClickListener 18:47
    • Lecture
      GestureDetector 15:42
    • Lecture
      Displaying the full photo 16:00
    • Lecture
      Serializable 16:59
    • Lecture
      Modify Photo Details Activity 05:56
    • Lecture
      Update for later version of Kotlin 00:26
    • Lecture
      Parcelable 09:05
    • Lecture
      Material Design 13:55
    • Lecture
      More on Material Design 09:49
    • Lecture
      AppCompat - Backwards Compatibility 06:33
    • Lecture
      Style Sheets 12:06
    • Lecture
      Custom Style Sheets 12:57
    • Lecture
      Namespaces 12:02
    • Lecture
      Other Material Design Changes 10:47
    • Lecture
      Missing Style Editor video 00:12
    • Lecture
      Differences in API Levels 08:58
    • Lecture
      String Resources 10:23
    • Lecture
      String Resources Placeholders 10:32
    • Lecture
      FAQ: Apple\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ 01:08
    • Lecture
      Adding the Search Feature 04:57
    • Lecture
      SearchView 13:16
    • Lecture
      More on SearchView 12:08
    • Lecture
      SearchView Events 09:32
    • Lecture
      Deprecation of framework PreferenceManager class 00:23
    • Lecture
      SharedPreferences 10:20
    • Lecture
      Telling Fibs 08:29
  • Databases, the SQL Language and SQLite on Android 05:32:26

    • Lecture
      Introduction 01:17
    • Lecture
      Introduction to Databases 05:06
    • Lecture
      Database Terminology 10:42
    • Lecture
      Command Line and Path Setup for Windows 09:41
    • Lecture
      Command Line and Path Setup for Mac 08:06
    • Lecture
      Command Line and Path Setup for Ubuntu Linux 06:17
    • Lecture
      Introduction to Sqlite 11:15
    • Lecture
      More SQL with Sqlite 10:45
    • Lecture
      Sqlite Querying Data 16:06
    • Lecture
      Order By and Joins 13:18
    • Lecture
      More Complex Joins 11:51
    • Lecture
      Wild Cards and Views 15:17
    • Lecture
      Housekeeping and Challenge 14:23
    • Lecture
      Basic SQL in Android 10:22
    • Lecture
      Create Table Add Data and Test 11:43
    • Lecture
      Cursor and Navigation 17:49
    • Lecture
      Correction 01:42
    • Lecture
      Android File System 16:27
    • Lecture
      Content Providers 02:55
    • Lecture
      Setting up the Emulators 11:39
    • Lecture
      Contact Provider App Layout 07:42
    • Lecture
      The ContactsContract 10:13
    • Lecture
      ContentResolver and Abstraction 08:41
    • Lecture
      Retrieving Data with a ContentResolver 09:33
    • Lecture
      Permissions 13:32
    • Lecture
      Checking Permissions at Runtime 15:00
    • Lecture
      Testing the App 09:16
    • Lecture
      Avoiding Crashes Snackbars and a Challenge 08:11
    • Lecture
      More on Snackbars 10:59
    • Lecture
      Intents, setData and Uris 14:40
    • Lecture
      Problems Storing State 06:24
    • Lecture
      Remove Saving of State 04:26
    • Lecture
      Test Scripts Challenge and Cleanup 07:08
  • ViewModel and LiveData 01:40:37

    • Lecture
      Introduction 02:17
    • Lecture
      Androids ViewModel Class 04:09
    • Lecture
      FAQ: Changes to the Lifecycle Components library 01:08
    • Lecture
      Using a ViewModel 13:36
    • Lecture
      Finish ViewModel Changes 21:48
    • Lecture
      Exposing LiveData 08:37
    • Lecture
      Swapping the ViewModel 07:46
    • Lecture
      ViewModel with Top 10 Downloader 10:27
    • Lecture
      Implement ViewModel 16:01
    • Lecture
      Final Changes 10:22
    • Lecture
      App Testing 04:26
  • TaskTimer App 09:49:38

    • Lecture
      The TaskTimer Application 18:30
    • Lecture
      Database Setup 11:50
    • Lecture
      Creating a Fragment 00:50
    • Lecture
      Tasks Contract Class 07:06
    • Lecture
      AppDatabase Class 09:20
    • Lecture
      Create SQL for Tasks Table 08:39
    • Lecture
      Singleton AppDatabase Class 11:00
    • Lecture
      onUpgrade and Testing 12:14
    • Lecture
      The ContentProvider 17:49
    • Lecture
      FAQ: context in a ContentProvider 01:08
    • Lecture
      uriMatcher 20:55
    • Lecture
      Updating Build Files 03:18
    • Lecture
      The Content URI 12:11
    • Lecture
      Register the ContentProvider 11:54
    • Lecture
      Using appendWhereEscapeString 12:18
    • Lecture
      Mime Types in the Content Provider 09:07
    • Lecture
      Content Provider Insert 09:11
    • Lecture
      Update and Delete 12:23
    • Lecture
      Testing Insert and Update 12:45
    • Lecture
      Testing Bulk Update and Delete 14:49
    • Lecture
      Main Menu UI 15:30
    • Lecture
      Task UI Layout 14:42
    • Lecture
      Task List Items Constraints 05:54
    • Lecture
      Add / Edit Layout 16:59
    • Lecture
      The Kotlin Data Class 12:21
    • Lecture
      The Add / Edit Fragment 18:53
    • Lecture
      Swapping Fragments 12:45
    • Lecture
      Multi-pane Fragments 13:19
    • Lecture
      Multi-pane Displays 15:49
    • Lecture
      Enabling Two-pane Mode 10:35
    • Lecture
      The Fragment Lifecycle Part 1 12:51
    • Lecture
      The Fragment Lifecycle Part 2 07:37
    • Lecture
      Logging the Fragment Lifecycle 14:55
    • Lecture
      Android SDK Gradle and Kotlin Updates 11:35
    • Lecture
      Up and Back Navigation for Fragments 07:49
    • Lecture
      Object can have More than One Type 03:47
    • Lecture
      Removing the Up Button 06:31
    • Lecture
      Back Navigation 06:43
    • Lecture
      Completing the AddEdit UI 10:16
    • Lecture
      Saving the Task Details 10:32
    • Lecture
      Test Saving 07:35
    • Lecture
      Updating Android Studio, Kotlin, and Gradle 04:36
    • Lecture
      Fixing New Kotlin Warnings 04:50
    • Lecture
      Layout Container 06:59
    • Lecture
      RecyclerView CursorAdapter 16:19
    • Lecture
      Introducing David Reidy 01:43
    • Lecture
      Tricky String Resources 12:15
    • Lecture
      The ViewModel Class 07:31
    • Lecture
      Subscribe to The ViewModel 03:28
    • Lecture
      Notifications and Observers 09:26
    • Lecture
      Responding to Taps 04:35
    • Lecture
      Style Editor 08:01
    • Lecture
      onClick Listeners, Interfaces and Callbacks 02:50
    • Lecture
      Responding to Clicks from the Adapter 04:32
    • Lecture
      Solution to The Interface Challenge 05:58
    • Lecture
      Deleting a Task from The Database 09:57
    • Lecture
      Accessing a Database on a Background Thread 07:42
    • Lecture
      Background Processing Using a Coroutine 04:37
    • Lecture
      Clean Up AddEditFragment 09:06
    • Lecture
      Saving in The ViewModel 05:21
    • Lecture
      Sharing ViewModel Instances 05:37
  • Dialogs 03:17:19

    • Lecture
      AndroidX 14:14
    • Lecture
      Introduction to Dialogs 04:22
    • Lecture
      AppDialog Class Part 1 15:52
    • Lecture
      AppDialog Class Part 2 08:48
    • Lecture
      Adding a Dialog to The App 05:52
    • Lecture
      Dialog CallBacks 11:44
    • Lecture
      Asserts and BuildConfig 08:14
    • Lecture
      Strange Dialog Behavior 05:54
    • Lecture
      Confirming Exit Without Saving 07:54
    • Lecture
      Implementing the Interface 04:19
    • Lecture
      Kotlin Extension Functions 08:45
    • Lecture
      Image Asset Studio 13:38
    • Lecture
      Create an About Dialog the Layout Part 1 10:56
    • Lecture
      Create an About Dialog the Layout Part 2 11:31
    • Lecture
      Displaying the About Dialog 12:10
    • Lecture
      Versioning and build.gradle 08:06
    • Lecture
      Dismissing the Dialogue 08:58
    • Lecture
      Supporting Older Versions 08:34
    • Lecture
      Compatibility Challenge Solution Part 1 15:03
    • Lecture
      Compatibility Challenge Solution Part 2 12:25
  • Settings Dialog 53:06

    • Lecture
      Introduction 03:05
    • Lecture
      Settings Dialog Layout 10:53
    • Lecture
      Settings Dialog 04:03
    • Lecture
      DefaultSharedPreferences 07:30
    • Lecture
      SeekBar Values 08:08
    • Lecture
      Quantity String Resources 09:30
    • Lecture
      Setting Dialog Title 03:40
    • Lecture
      Retain Instance State 06:17
  • Multiple Tables and Database Upgrades 01:10:50

    • Lecture
      Introduction 04:13
    • Lecture
      A Correction and the Device File Explorer 07:12
    • Lecture
      Database Updates 11:45
    • Lecture
      Saving the Timing Data 06:20
    • Lecture
      The saveTiming Function 04:15
    • Lecture
      Testing Timings 03:37
    • Lecture
      Providing Feedback 04:54
    • Lecture
      Correction to the Providing Feedback lecture 00:25
    • Lecture
      Data Loss 03:58
    • Lecture
      Storing the Current Timing Records 04:05
    • Lecture
      Solution - Retrieving the Current Time Record 04:46
    • Lecture
      Solution Continued 02:01
    • Lecture
      Finish Solution and Test 06:48
    • Lecture
      When the Battery Dies 06:31
  • Reports 04:50:27

    • Lecture
      Creating Test Data 12:52
    • Lecture
      Generating the Test Data 03:36
    • Lecture
      Debug and Release Builds 10:07
    • Lecture
      Using a SQLite view 11:53
    • Lecture
      Adding the view to the Database 08:03
    • Lecture
      Adding the view to the ContentProvider 03:29
    • Lecture
      Testing the Database Upgrade 07:15
    • Lecture
      ConstraintLayout Chains 09:02
    • Lecture
      Chain Types 12:28
    • Lecture
      Finishing the reports layouts - challenge 10:18
    • Lecture
      The Landscape Layouts 09:16
    • Lecture
      The Report Adapter 10:42
    • Lecture
      The Durations Report Activity 12:10
    • Lecture
      Testing Different Locales 06:55
    • Lecture
      Creating the reports ViewModel 06:29
    • Lecture
      Using the DurationsViewModel 02:32
    • Lecture
      Sorting the Report Data 06:40
    • Lecture
      Vector Drawables and Asset Studio 13:09
    • Lecture
      The Report Menu 05:27
    • Lecture
      Report Menu Code - day/week toggle 07:38
    • Lecture
      The DatePickerDialog 15:21
    • Lecture
      Filtering by Date 05:56
    • Lecture
      Filtering in the DurationsViewModel 10:12
    • Lecture
      Testing the Report Filters 07:30
    • Lecture
      Unbuggy DatePickerDialog 09:39
    • Lecture
      Deleting old Timings data 09:23
    • Lecture
      Testing Mass Deletion 04:02
    • Lecture
      Observing the cursor in the ViewModel 04:27
    • Lecture
      A Minor Bug 05:01
    • Lecture
      Observing a Configuration Change 09:07
    • Lecture
      Testing the Bug Fix 08:04
    • Lecture
      Using the First Day Of Week Setting 06:13
    • Lecture
      Taking Advantage of Later Features 04:27
    • Lecture
      Testing the new DatePickerFragment 04:09
    • Lecture
      Observing SharedPreference changes 07:19
    • Lecture
      Solution to Ignore Short Timings Challenge 09:36
  • Tidying up 02:37:52

    • Lecture
      Introduction 01:49
    • Lecture
      Plugin and Library Versions 06:19
    • Lecture
      Code Review 07:46
    • Lecture
      Code Review - The AppProvider Class 09:25
    • Lecture
      Code Review - CursorRecyclerViewAdapter, DurationsReport, and the ViewModels 08:22
    • Lecture
      Code Review - MainActivity and the Contract classes 05:48
    • Lecture
      Kotlin and ViewModels 10:03
    • Lecture
      Another Breaking Change 05:26
    • Lecture
      Improvements to coroutines in a ViewModel 05:53
    • Lecture
      Dispatchers 03:47
    • Lecture
      Coroutines Don’t Block 07:54
    • Lecture
      Bug Fixes and Ideas for Improvements 06:02
    • Lecture
      Bonus - Please Watch! 00:48
    • Lecture
      Prevent Deletion of Edited Task 10:26
    • Lecture
      Implementing Delete by Swiping - Part 1 07:51
    • Lecture
      Implementing Delete by Swiping - Part 2 06:08
    • Lecture
      Implementing Delete by Swiping - Part 3 08:12
    • Lecture
      Challenge - Bug Fix 05:33
    • Lecture
      Challenge - Deleting a task that's being timed 05:24
    • Lecture
      Parameterised Queries 09:00
    • Lecture
      Adding the Parameters Table 08:22
    • Lecture
      Using the Parameterised View in our ViewModels 11:10
    • Lecture
      Refreshing the Report 02:41
    • Lecture
      Collation 03:43
  • Extra Information - Source code, and other stuff 13:43

    • Lecture
      Source Code 08:55
    • Lecture
      Bonus Lecture and Information 04:48
Tim Buchalka
Java Python Android and C# Expert Developer - 1.23M students Tim's been a professional software developer for close to 40 years. During his career, he has worked for major companies such as Fujitsu, Mitsubishi, and Saab. His video courses are… View Profile
Jean-Paul Roberts
Computer programmer, analyst and teacher I am a programmer with over 30 years' experience gained in a range of industries, the last 16 with IBM. I am now self employed developing apps for Android; programming… View Profile

Student Feedback

4.3
5,771 Average ratings
49%
35%
11%
3%
2%
  • 2 weeks ago

    Yash Jain

    nice but make retrofit jetpack coroutine in it

  • 4 weeks ago

    Antonio Carlos Lima de Santana

    Já tenho experiência com outras linguagens e ferramentas, mas estou começando agora com Kotlin e Android Studio. Até o momento, estou gostando deste curso.

  • 1 month ago

    Vayalapalli Sravanthi

    very useful

  • 1 month ago

    Amujuri Ganesh

    It's good tutorial for me. It has full of information. I learned a lot from this even though I have been developing Android apps and love it.

  • 2 months ago

    Sahil

    it is very comprehensive and amazing to learn, It is very easy to understand

  • 2 months ago

    Sean Ferguson

    It has been a great course for me looking to getting in to a Kotlin and/or Android app development job. Even if some of the content used is depreciated by the time I did this course, it gives a good real world scenario of maintaining code and reading around what new to implement and still have the app working as expected. Many thanks for putting it together!

  • 2 months ago

    Obini Emeke

    Nice introduction. I look foward learning more from you guys

  • 3 months ago

    Duong Viet Cuong ㅤ

    It's good for me.

  • 4 months ago

    Woramet Koonchalakorn

    I love it!, This course is very useful

  • 4 months ago

    Kavita

    Nice

  • Overview
  • Curriculum
  • Instructor
  • Reviews
Take this course
  • Share:
Take this course

Related Courses

Java Programming Masterclass updated to Java 17 Read More
mm
LPA TEAM

Java Programming Masterclass updated to Java 17

mm
LPA TEAM
(0 review)
754243
(176543 Reviews)
Learn Python Programming Masterclass Read More
mm
LPA TEAM

Learn Python Programming Masterclass

mm
LPA TEAM
(0 review)
404691
(96448 Reviews)
Android Java Masterclass – Become an App Developer Read More
mm
LPA TEAM

Android Java Masterclass - Become an App Developer

mm
LPA TEAM
(0 review)
68578
(10343 Reviews)
Java Spring Tutorial Masterclass – Learn Spring Framework 5 Read More
mm
LPA TEAM

Java Spring Tutorial Masterclass - Learn Spring Framework 5

mm
LPA TEAM
(0 review)
38147
(6155 Reviews)
Kotlin for Java Developers Read More
mm
LPA TEAM

Kotlin for Java Developers

mm
LPA TEAM
(0 review)
23376
(3905 Reviews)
Learn Java Creating Android Games Using the LibGDX library Read More
mm
LPA TEAM

Learn Java Creating Android Games Using the LibGDX library

mm
LPA TEAM
(0 review)
3275
(486 Reviews)
Oracle Java Certification – Pass the Associate 1Z0-808 Exam. Read More
mm
LPA TEAM

Oracle Java Certification - Pass the Associate 1Z0-808 Exam.

mm
LPA TEAM
(0 review)
23782
(4811 Reviews)
What’s New in Java 9 – Modules and More! Read More
mm
LPA TEAM

What's New in Java 9 - Modules and More!

mm
LPA TEAM
(0 review)
5331
(774 Reviews)
Ruby for Beginners Read More
mm
LPA TEAM

Ruby for Beginners

mm
LPA TEAM
(0 review)
812
(78 Reviews)
Learn To Write 2D Games with C# and Unity Read More
mm
LPA TEAM

Learn To Write 2D Games with C# and Unity

mm
LPA TEAM
(0 review)
1352
(100 Reviews)
SQL for Beginners: Learn SQL using MySQL and Database Design Read More
mm
LPA TEAM

SQL for Beginners: Learn SQL using MySQL and Database Design

mm
LPA TEAM
(0 review)
134712
(41224 Reviews)
Data Structures and Algorithms:  Deep Dive Using Java Read More
mm
Tim Buchalka

Data Structures and Algorithms: Deep Dive Using Java

mm
LPA TEAM
(0 review)
89035
(13908 Reviews)
Learn Kotlin and Create Games Using the LibGdx Library Read More
mm
LPA TEAM

Learn Kotlin and Create Games Using the LibGdx Library

mm
LPA TEAM
(0 review)
1461
(188 Reviews)
Ethical Hacking Course:  Protect Yourself From Being Hacked Read More
mm
LPA TEAM

Ethical Hacking Course: Protect Yourself From Being Hacked

mm
LPA TEAM
(0 review)
5005
(418 Reviews)
The Complete Xamarin Developer Course:  iOS And Android! Read More
mm
LPA TEAM

The Complete Xamarin Developer Course: iOS And Android!

mm
LPA TEAM
(0 review)
23833
(4298 Reviews)
C Programming For Beginners – Master the C Language Read More
mm
LPA TEAM

C Programming For Beginners - Master the C Language

mm
LPA TEAM
(0 review)
131358
(28960 Reviews)
Ruby on Rails for Beginners Read More
mm
LPA TEAM

Ruby on Rails for Beginners

mm
LPA TEAM
(0 review)
796
(63 Reviews)
Beginning C++ Programming – From Beginner to Beyond Read More
mm
LPA TEAM

Beginning C++ Programming - From Beginner to Beyond

mm
LPA TEAM
(0 review)
239229
(56335 Reviews)
PHP for Beginners Read More
mm
LPA TEAM

PHP for Beginners

mm
LPA TEAM
(0 review)
14848
(2883 Reviews)
Windows Presentation Foundation Masterclass Read More
mm
LPA TEAM

Windows Presentation Foundation Masterclass

mm
LPA TEAM
(0 review)
19980
(3909 Reviews)
Master MATLAB through Guided Problem Solving Read More
mm
LPA TEAM

Master MATLAB through Guided Problem Solving

mm
LPA TEAM
(0 review)
21710
(3739 Reviews)
Machine Learning with Python from Scratch Read More
mm
LPA TEAM

Machine Learning with Python from Scratch

mm
LPA TEAM
(0 review)
4456
(317 Reviews)
Advanced Algorithms in Java Read More
mm
LPA TEAM

Advanced Algorithms in Java

mm
LPA TEAM
(0 review)
6996
(275 Reviews)
Rust Programming Language for Beginners Read More
mm
LPA TEAM

Rust Programming Language for Beginners

mm
LPA TEAM
(0 review)
3969
(388 Reviews)
Python REST APIs with Flask, Docker, MongoDB, and AWS DevOps Read More
mm
LPA TEAM

Python REST APIs with Flask, Docker, MongoDB, and AWS DevOps

mm
LPA TEAM
(0 review)
16754
(2000 Reviews)
3D Programming with JavaScript and the Three.js 3D Library Read More
mm
LPA TEAM

3D Programming with JavaScript and the Three.js 3D Library

mm
LPA TEAM
(0 review)
6347
(953 Reviews)
Java Enterprise Edition 8 for Beginners course Read More
mm
LPA TEAM

Java Enterprise Edition 8 for Beginners course

mm
LPA TEAM
(0 review)
16559
(2594 Reviews)
HTML and CSS Masterclass Read More
mm
LPA TEAM

HTML and CSS Masterclass

mm
LPA TEAM
(0 review)
1705
(205 Reviews)
ArcPy for Python Developers using ArcGIS Pro Read More
mm
LPA TEAM

ArcPy for Python Developers using ArcGIS Pro

mm
LPA TEAM
(0 review)
5938
(1067 Reviews)
Azure Machine Learning using Cognitive Services Read More
mm
LPA TEAM

Azure Machine Learning using Cognitive Services

mm
LPA TEAM
(0 review)
4149
(396 Reviews)
Learning Bootstrap – From HTML to WordPress Theme Read More
mm
LPA TEAM

Learning Bootstrap - From HTML to Wordpress Theme

mm
LPA TEAM
(0 review)
1095
(86 Reviews)
Search Algorithms in Artificial Intelligence with Java Read More
mm
LPA TEAM

Search Algorithms in Artificial Intelligence with Java

mm
LPA TEAM
(0 review)
2130
(116 Reviews)
The Advanced Xamarin Developer Masterclass Read More
mm
LPA TEAM

The Advanced Xamarin Developer Masterclass

mm
LPA TEAM
(0 review)
6145
(515 Reviews)
The Complete Javascript Course for Developers Read More
mm
LPA TEAM

The Complete Javascript Course for Developers

mm
LPA TEAM
(0 review)
2357
(392 Reviews)
Learn Java Programming Crash Course Read More
mm
LPA TEAM

Learn Java Programming Crash Course

mm
LPA TEAM
(0 review)
17208
(3494 Reviews)
Learn C# for Beginners Crash Course Read More
mm
LPA TEAM

Learn C# for Beginners Crash Course

mm
LPA TEAM
(0 review)
9473
(1730 Reviews)
Python Tkinter Masterclass – Learn Python GUI Programming Read More
mm
Volkan Atış

Python Tkinter Masterclass - Learn Python GUI Programming

mm
LPA TEAM
(0 review)
5108
(653 Reviews)
The Java Design Patterns Course Read More
mm
Jason Fedin

The Java Design Patterns Course

mm
LPA TEAM
(0 review)
11327
(990 Reviews)
Mastering Intellij IDEA and Android Studio Read More
mm
LPA TEAM

Mastering Intellij IDEA and Android Studio

mm
LPA TEAM
(0 review)
1194
(94 Reviews)
Git & GitHub Masterclass Read More
mm
LPA TEAM

Git & GitHub Masterclass

mm
LPA TEAM
(0 review)
10553
(1355 Reviews)
Python GUI Programming Using PyQt5 Read More
mm
LPA TEAM

Python GUI Programming Using PyQt5

mm
LPA TEAM
(0 review)
4746
(723 Reviews)
Android Firebase Masterclass – Master Google Firebase Read More
mm
LPA TEAM

Android Firebase Masterclass - Master Google Firebase

mm
LPA TEAM
(0 review)
2625
(238 Reviews)
Master CI/CD for Xamarin Read More
mm
LPA TEAM

Master CI/CD for Xamarin

mm
LPA TEAM
(0 review)
462
(48 Reviews)
Master CI/CD for Android Developers Read More
mm
LPA TEAM

Master CI/CD for Android Developers

mm
LPA TEAM
(0 review)
1268
(173 Reviews)
Master CI/CD for iOS Developers Read More
mm
LPA TEAM

Master CI/CD for iOS Developers

mm
LPA TEAM
(0 review)
1681
(211 Reviews)
Master CI/CD for React Native Read More
mm
LPA TEAM

Master CI/CD for React Native

mm
LPA TEAM
(0 review)
2530
(262 Reviews)
Java SE 11 Developer 1Z0-819 OCP Course – Part 1 Read More
mm
LPA TEAM

Java SE 11 Developer 1Z0-819 OCP Course - Part 1

mm
LPA TEAM
(0 review)
21648
(3225 Reviews)
Advanced C Programming Course Read More
mm
LPA TEAM

Advanced C Programming Course

mm
LPA TEAM
(0 review)
25648
(3131 Reviews)
iOS Firebase Masterclass – Real time Database and Firestore Read More
mm
LPA TEAM

iOS Firebase Masterclass - Real time Database and Firestore

mm
LPA TEAM
(0 review)
345
(33 Reviews)
Introduction to Continuous Integration & Continuous Delivery Read More
mm
LPA TEAM

Introduction to Continuous Integration & Continuous Delivery

mm
LPA TEAM
(0 review)
8716
(3953 Reviews)
Java SE 11 Developer 1Z0-819 OCP Course – Part 2 Read More
mm
LPA TEAM

Java SE 11 Developer 1Z0-819 OCP Course - Part 2

mm
LPA TEAM
(0 review)
11339
(853 Reviews)
Learn Go for Beginners Crash Course (Golang) Read More
mm
LPA TEAM

Learn Go for Beginners Crash Course (Golang)

mm
LPA TEAM
(0 review)
9438
(1644 Reviews)
Python Django 4 Masterclass | Build a Real World Project Read More
mm
LPA TEAM

Python Django 4 Masterclass | Build a Real World Project

mm
LPA TEAM
(0 review)
1832
(152 Reviews)
Python Crash Course:  Gain Real World Developer Skills Now! Read More
mm
LPA TEAM

Python Crash Course: Gain Real World Developer Skills Now!

mm
LPA TEAM
(0 review)
697
(52 Reviews)
Kotlin Crash Course:  Gain Real World Developer Skills Now! Read More
mm
LPA TEAM

Kotlin Crash Course: Gain Real World Developer Skills Now!

mm
LPA TEAM
(0 review)
173
(6 Reviews)

Leave A Reply Cancel reply

Your email address will not be published. Required fields are marked *

Latest Courses

Kotlin Crash Course:  Gain Real World Developer Skills Now!

Kotlin Crash Course: Gain Real World Developer Skills Now!

Python Crash Course:  Gain Real World Developer Skills Now!

Python Crash Course: Gain Real World Developer Skills Now!

Python Django 4 Masterclass | Build a Real World Project

Python Django 4 Masterclass | Build a Real World Project

Learn Go for Beginners Crash Course (Golang)

Learn Go for Beginners Crash Course (Golang)

Java SE 11 Developer 1Z0-819 OCP Course – Part 2

Java SE 11 Developer 1Z0-819 OCP Course - Part 2

Introduction to Continuous Integration & Continuous Delivery

Introduction to Continuous Integration & Continuous Delivery

logo-eduma-the-best-lms-wordpress-theme

+61 422 512 549

[email protected]

Company

  • About Us
  • Blog
  • Contact
  • Become A Co-Instructor

Links

  • Courses
  • FAQs
  • Contact Us

  • Privacy Policy
  • Terms & Conditions

Would you like to become a Udemy Course Co-Instructor?

Struggling to find students? Let us publish and promote your course to our students.

FIND OUT MORE NOW
Modal title

Message modal