Android Oreo Kotlin App Masterclass

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

Last updated 2022-01-10 | 4.4

- 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.

What you'll 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.

* 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.

Description

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!

Who this course is for:

  • 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.

Course content

18 sections • 382 lectures

Windows - Install Android Studio Preview 11:18

Mac - Install Android Studio Preview 06:35

Linux - Install Android Studio Preview 11:35

Configure Android SDK on all Three Platforms Preview 12:04

Android Studio Settings Preview 03:01

Enable VT-X in BIOS Preview 13:54

Your Programming Careers Questions Answered Preview 01:53

Access to Programming Career Q&A Preview 00:28

Introduction Preview 00:40

Android Studio Templates Preview 08:01

FAQ: Templates in Android Studio 3.6 and later Preview 00:37

More on Android Templates Preview 08:25

Hello World Preview 12:42

Tour of Android Studio Preview 16:30

Setting Up a Virtual Device Preview 15:11

FAQ: Emulators on Windows 10 with AMD processor Preview 00:31

Running on an emulator Preview 09:50

Running on a physical Android device Preview 12:26

FAQ for Android Studio 3.3 Preview 01:37

Kotlin Tutorial Setup Preview 10:32

Kotlin Tutorial 1 Preview 09:09

Variables and Types Preview 11:26

More on Variables and Types Preview 11:49

String Concatenation and Interpolation Preview 12:35

val and var and more on Declarations Preview 10:19

Conditions Preview 17:58

Classes Preview 19:34

Objects and Instances Preview 14:53

Challenge Preview 06:24

Lists Preview 10:25

More on Lists Preview 12:00

toString Challenge Preview 04:24

for Loops Preview 14:07

for Encapsulation and Private Properties Preview 13:19

Overloading Functions Preview 08:13

Inheritance Preview 12:50

More on Inheritance Preview 10:10

Inheritance Continued Preview 09:11

Further Inheritance Preview 09:51

while Loops Preview 14:17

for Loop Revisited Preview 10:03

do while Loop Preview 05:14

Loop Challenge Preview 12:37

Introduction Preview 02:27

Setup Play Project Preview 11:39

The Constraint Layout Preview 17:06

Constraints and Resizing Preview 15:17

Positioning Widgets Preview 07:52

Inner Lines within a Widget Preview 09:33

Layouts on Different Devices Preview 11:00

More on the Constraints Preview 12:48

Layout Designer rendering error Preview 01:52

FAQ: Baseline Constraints change Preview 00:10

Baseline Constraints Preview 09:55

Constraining Widgets Preview 05:37

Add Scrolling Capabilities Preview 13:32

The Button Counter App Preview 14:50

Finish Layout Preview 12:18

Coding Button Counter App Preview 13:49

findViewById and r Class Preview 12:46

Events and setonclicklistener Preview 08:03

Testing and Challenge Time Preview 14:10

Extending the Button App Preview 10:36

Testing and Challenge Preview 06:53

Fixing Kotlin Gradle Issues Preview 03:58

The Activity Lifecycle Preview 15:18

The Logcat Pane Preview 09:04

Logging the Activity Lifecycle Preview 09:34

Activity Lifecycle in Action Preview 14:32

Saving and Restoring Instance State Preview 15:09

Demo Calculator App Preview 04:51

Calculator Interface Setup Preview 15:36

Continue with Interface Preview 16:29

Fine Tuning the Layout Preview 15:28

Create Landscape Layout Preview 09:01

Comparing FIles with Diff Preview 17:12

Comparing Directories Preview 08:29

Coding the Calculator Preview 23:15

Add onClickListeners Preview 07:04

Write Perform Operation Function Preview 16:45

Bug Fix and Code Improvements Preview 14:13

Bug Fix Challlenge and Save State Preview 19:52

Widget References in Kotlin Preview 07:28

Guidelines Preview 13:53

Fixing Landscape Layout Preview 12:40

Add Neg Button to Layout Preview 07:16

Code Changes for Neg Button Preview 08:30

Add Neg Button to Portrait Preview 19:04

Introduction Preview 10:47

AsyncTask Preview 14:39

Logging and Logcat Preview 09:00

Important note for API 28 (and higher) and the Top 10 Downloader Preview 00:22

Download the RSS Feed Preview 14:38

Reading the Data Preview 20:05

Android Permissions Preview 20:03

Writing Idiomatic Kotlin Preview 15:00

More Idiomatic Kotlin Preview 07:05

Parsing the Data Preview 19:06

Create Xml Parse Function Preview 15:08

Testing the App Preview 10:11

ListView and ArrayAdapter Preview 13:18

Code Changes for Array Adapter Preview 17:02

onDestroy and Asynctask Preview 07:31

Create Custom Adapter Preview 11:43

Custom Adapter Code Preview 17:19

Improving the Adapter Preview 12:41

ViewHolder Pattern Preview 12:09

Adding a Menu - Layout Preview 08:59

Adding A Menu - Code Preview 16:05

Menu Groups - Layout Preview 09:31

Menu Groups - Code Preview 15:56

Challenge Solution Preview 15:31

Setup Preview 17:54

YouTube Activity Preview 13:26

Adding Widgets Dynamically Preview 09:59

Google API Key Preview 11:41

Add Key to Code Preview 07:57

The YouTube Player Preview 13:33

onInitializationSuccess Method Preview 13:11

Adding Listeners Preview 10:43

Improving the Player Preview 06:24

Extending App Layouts Preview 05:28

Extending Youtube App Code Preview 12:29

Implementing Intents and Challenge Preview 17:53

Challenge Solution Preview 05:10

More Error Handling Preview 15:10

Introduction Preview 04:06

Flick App and Feeds Preview 15:36

Json and Mini challenge Preview 13:38

Log Tag and Companion Objects Preview 15:39

Kotlin top-level constants Preview 01:02

Download JSON - doInBackground Preview 12:13

Downloading the JSON Preview 13:28

CallBacks Preview 16:14

Project Diagram and Photo Class Preview 08:21

GetFlickJsonData class Preview 20:06

GetFlickrJsonData class continued Preview 18:35

Uri Builder Preview 12:02

Flickr Browser User Inferface Preview 12:07

RecyclerView Layouts Preview 15:09

Finishing Browse Layout Preview 05:43

Search and PhotoDetail Activities Preview 08:44

Nested Layouts Preview 15:58

Recyclerview Adapter Preview 17:28

onBindViewHolder and Picasso Preview 14:12

Associate Adapter to Recyclerview Preview 06:54

RecyclerItemClickListener Preview 18:47

GestureDetector Preview 15:42

Displaying the full photo Preview 16:00

Serializable Preview 16:59

Modify Photo Details Activity Preview 05:56

Update for later version of Kotlin Preview 00:26

Parcelable Preview 09:05

Material Design Preview 13:55

More on Material Design Preview 09:49

AppCompat - Backwards Compatibility Preview 06:33

Style Sheets Preview 12:06

Custom Style Sheets Preview 12:57

Namespaces Preview 12:02

Other Material Design Changes Preview 10:47

Missing Style Editor video Preview 00:12

Differences in API Levels Preview 08:58

String Resources Preview 10:23

String Resources Placeholders Preview 10:32

Adding the Search Feature Preview 04:57

SearchView Preview 13:16

More on SearchView Preview 12:08

SearchView Events Preview 09:32

Deprecation of framework PreferenceManager class Preview 00:23

SharedPreferences Preview 10:20

Telling Fibs Preview 08:29

Introduction Preview 01:17

Introduction to Databases Preview 05:06

Database Terminology Preview 10:42

Command Line and Path Setup for Windows Preview 09:41

Command Line and Path Setup for Mac Preview 08:06

Command Line and Path Setup for Ubuntu Linux Preview 06:17

Introduction to Sqlite Preview 11:15

More SQL with Sqlite Preview 10:45

Sqlite Querying Data Preview 16:06

Order By and Joins Preview 13:18

More Complex Joins Preview 11:51

Wild Cards and Views Preview 15:17

Housekeeping and Challenge Preview 14:23

Basic SQL in Android Preview 10:22

Create Table Add Data and Test Preview 11:43

Cursor and Navigation Preview 17:49

Correction Preview 01:42

Android File System Preview 16:27

Content Providers Preview 02:55

Setting up the Emulators Preview 11:39

Contact Provider App Layout Preview 07:42

The ContactsContract Preview 10:13

ContentResolver and Abstraction Preview 08:41

Retrieving Data with a ContentResolver Preview 09:33

Permissions Preview 13:32

Checking Permissions at Runtime Preview 15:00

Testing the App Preview 09:16

Avoiding Crashes Snackbars and a Challenge Preview 08:11

More on Snackbars Preview 10:59

Intents, setData and Uris Preview 14:40

Problems Storing State Preview 06:24

Remove Saving of State Preview 04:26

Test Scripts Challenge and Cleanup Preview 07:08

Introduction Preview 02:17

Androids ViewModel Class Preview 04:09

FAQ: Changes to the Lifecycle Components library Preview 01:08

Using a ViewModel Preview 13:36

Finish ViewModel Changes Preview 21:48

Exposing LiveData Preview 08:37

Swapping the ViewModel Preview 07:46

ViewModel with Top 10 Downloader Preview 10:27

Implement ViewModel Preview 16:01

Final Changes Preview 10:22

App Testing Preview 04:26

The TaskTimer Application Preview 18:30

Database Setup Preview 11:50

Creating a Fragment Preview 00:50

Tasks Contract Class Preview 07:06

AppDatabase Class Preview 09:20

Create SQL for Tasks Table Preview 08:39

Singleton AppDatabase Class Preview 11:00

onUpgrade and Testing Preview 12:14

The ContentProvider Preview 17:49

FAQ: context in a ContentProvider Preview 01:08

uriMatcher Preview 20:55

Updating Build Files Preview 03:18

The Content URI Preview 12:11

Register the ContentProvider Preview 11:54

Using appendWhereEscapeString Preview 12:18

Mime Types in the Content Provider Preview 09:07

Content Provider Insert Preview 09:11

Update and Delete Preview 12:23

Testing Insert and Update Preview 12:45

Testing Bulk Update and Delete Preview 14:49

Main Menu UI Preview 15:30

Task UI Layout Preview 14:42

Task List Items Constraints Preview 05:54

Add / Edit Layout Preview 16:59

The Kotlin Data Class Preview 12:21

The Add / Edit Fragment Preview 18:53

Swapping Fragments Preview 12:45

Multi-pane Fragments Preview 13:19

Multi-pane Displays Preview 15:49

Enabling Two-pane Mode Preview 10:35

The Fragment Lifecycle Part 1 Preview 12:51

The Fragment Lifecycle Part 2 Preview 07:37

Logging the Fragment Lifecycle Preview 14:55

Android SDK Gradle and Kotlin Updates Preview 11:35

Up and Back Navigation for Fragments Preview 07:49

Object can have More than One Type Preview 03:47

Removing the Up Button Preview 06:31

Back Navigation Preview 06:43

Completing the AddEdit UI Preview 10:16

Saving the Task Details Preview 10:32

Test Saving Preview 07:35

Updating Android Studio, Kotlin, and Gradle Preview 04:36

Fixing New Kotlin Warnings Preview 04:50

Layout Container Preview 06:59

RecyclerView CursorAdapter Preview 16:19

Introducing David Reidy Preview 01:43

Tricky String Resources Preview 12:15

The ViewModel Class Preview 07:31

Subscribe to The ViewModel Preview 03:28

Notifications and Observers Preview 09:26

Responding to Taps Preview 04:35

onClick Listeners, Interfaces and Callbacks Preview 02:50

Responding to Clicks from the Adapter Preview 04:32

Solution to The Interface Challenge Preview 05:58

Deleting a Task from The Database Preview 09:57

Accessing a Database on a Background Thread Preview 07:42

Background Processing Using a Coroutine Preview 04:37

Clean Up AddEditFragment Preview 09:06

Saving in The ViewModel Preview 05:21

Sharing ViewModel Instances Preview 05:37

AndroidX Preview 14:14

Introduction to Dialogs Preview 04:22

AppDialog Class Part 1 Preview 15:52

AppDialog Class Part 2 Preview 08:48

Adding a Dialog to The App Preview 05:52

Dialog CallBacks Preview 11:44

Asserts and BuildConfig Preview 08:14

Strange Dialog Behavior Preview 05:54

Confirming Exit Without Saving Preview 07:54

Implementing the Interface Preview 04:19

Kotlin Extension Functions Preview 08:45

Image Asset Studio Preview 13:38

Create an About Dialog the Layout Part 1 Preview 10:56

Create an About Dialog the Layout Part 2 Preview 11:31

Displaying the About Dialog Preview 12:10

Versioning and build.gradle Preview 08:06

Dismissing the Dialogue Preview 08:58

Supporting Older Versions Preview 08:34

Compatibility Challenge Solution Part 1 Preview 15:03

Compatibility Challenge Solution Part 2 Preview 12:25

Introduction Preview 03:05

Settings Dialog Layout Preview 10:53

Settings Dialog Preview 04:03

DefaultSharedPreferences Preview 07:30

SeekBar Values Preview 08:08

Quantity String Resources Preview 09:30

Setting Dialog Title Preview 03:40

Retain Instance State Preview 06:17

Introduction Preview 04:13

A Correction and the Device File Explorer Preview 07:12

Database Updates Preview 11:45

Saving the Timing Data Preview 06:20

The saveTiming Function Preview 04:15

Testing Timings Preview 03:37

Providing Feedback Preview 04:54

Correction to the Providing Feedback lecture Preview 00:25

Data Loss Preview 03:58

Storing the Current Timing Records Preview 04:05

Solution - Retrieving the Current Time Record Preview 04:46

Solution Continued Preview 02:01

Finish Solution and Test Preview 06:48

When the Battery Dies Preview 06:31

Creating Test Data Preview 12:52

Generating the Test Data Preview 03:36

Debug and Release Builds Preview 10:07

Using a SQLite view Preview 11:53

Adding the view to the Database Preview 08:03

Adding the view to the ContentProvider Preview 03:29

Testing the Database Upgrade Preview 07:15

ConstraintLayout Chains Preview 09:02

Chain Types Preview 12:28

Finishing the reports layouts - challenge Preview 10:18

The Landscape Layouts Preview 09:16

The Report Adapter Preview 10:42

The Durations Report Activity Preview 12:10

Testing Different Locales Preview 06:55

Creating the reports ViewModel Preview 06:29

Using the DurationsViewModel Preview 02:32

Sorting the Report Data Preview 06:40

Vector Drawables and Asset Studio Preview 13:09

The Report Menu Preview 05:27

Report Menu Code - day/week toggle Preview 07:38

The DatePickerDialog Preview 15:21

Filtering by Date Preview 05:56

Filtering in the DurationsViewModel Preview 10:12

Testing the Report Filters Preview 07:30

Unbuggy DatePickerDialog Preview 09:39

Deleting old Timings data Preview 09:23

Testing Mass Deletion Preview 04:02

Observing the cursor in the ViewModel Preview 04:27

A Minor Bug Preview 05:01

Observing a Configuration Change Preview 09:07

Testing the Bug Fix Preview 08:04

Using the First Day Of Week Setting Preview 06:13

Taking Advantage of Later Features Preview 04:27

Testing the new DatePickerFragment Preview 04:09

Observing SharedPreference changes Preview 07:19

Solution to Ignore Short Timings Challenge Preview 09:36

Introduction Preview 01:49

Plugin and Library Versions Preview 06:19

Code Review Preview 07:46

Code Review - The AppProvider Class Preview 09:25

Code Review - CursorRecyclerViewAdapter, DurationsReport, and the ViewModels Preview 08:22

Code Review - MainActivity and the Contract classes Preview 05:48

Kotlin and ViewModels Preview 10:03

Another Breaking Change Preview 05:26

Improvements to coroutines in a ViewModel Preview 05:53

Dispatchers Preview 03:47

Coroutines Don’t Block Preview 07:54

Bug Fixes and Ideas for Improvements Preview 06:02

Prevent Deletion of Edited Task Preview 10:26

Implementing Delete by Swiping - Part 1 Preview 07:51

Implementing Delete by Swiping - Part 2 Preview 06:08

Implementing Delete by Swiping - Part 3 Preview 08:12

Challenge - Bug Fix Preview 05:33

Challenge - Deleting a task that's being timed Preview 05:24

Parameterised Queries Preview 09:00

Adding the Parameters Table Preview 08:22

Using the Parameterised View in our ViewModels Preview 11:10

Refreshing the Report Preview 02:41

Collation Preview 03:43