Learn Kotlin by Developing Android Apps
4.4 (13 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
53 students enrolled

Learn Kotlin by Developing Android Apps

Grasp the intricacies of Kotlin and equip yourself to develop premium Android apps from novice to pro
4.4 (13 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
53 students enrolled
Created by Packt Publishing
Last updated 10/2017
English [Auto]
Current price: $86.99 Original price: $124.99 Discount: 30% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 7 hours on-demand video
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Develop an Android application with Kotlin
  • Use the Android Studio development environment.
  • Kotlin syntax and strategies.
  • Integrate with apps on Android devices.
  • How to integrate with external data.
Course content
Expand all 37 lectures 07:00:50
+ Introduction to Kotlin
6 lectures 01:06:33

This video provides an overview of the entire course.

Preview 08:21

How can Kotlin be used and why should we use it?

  • Learn the benefits of Kotlin
  • Get to know the history of Kotlin
  • Learn the trademarks used in this video course  
Preview 07:10

In this video, we will learn the differences between two programming paradigms: object oriented programming and functional programming.

Object Oriented versus Functional Programming

This hands-on demonstration shows how to create a Kotlin project in Android Studio.

Create a Kotlin Project in Android Studio

Understand some of the time-saving features of Kotlin. Explore new programming paradigms that are embraced by Kotlin. 

Kotlin Syntax Overview

Are you an experienced Java developer? This quick-start video explains some differences between Kotlin and Java.

Kotlin for the Java Developer
+ Create a Simple Kotlin App Project and Layout
5 lectures 01:02:14

Describe our example application with a design document.

Project Design Document

In this video, we demystify the Android project structure, and we see the files and folders that we will use frequently.

Understanding the AndroidTM Project Structure

The Android operating system runs on a nearly infinite combination of hardware and resolution. Making an app look good on all of these combinations requires knowledge of how to leverage layouts in Android.


Once we have defined our layout, we can add widgets to the layout. Widgets are User Interface elements that allow the user to interact with our application.             

Add Widgets to a Layout

Now that we have a button on our page, what do we do when the user clicks a button?

  • Understand the onClick attribute of the Button widget
  • Create a function to match the button's onClick value
  • Visualize what happens when we click a button 
Handle a Button Click
+ Connect Layouts and Widgets to Kotlin Functions
5 lectures 01:09:30

Nearly all programming languages require representing a value in memory, and performing computations in memory. When we declare variables, we are reserving a space in memory where we can store values and perform computations.

Declaring Variables

Functions are the verbs of our program. They are units of work.  


It's easy to learn Kotlin if you already know Java. It's also easy to convert a Java program to a Kotlin program, one line at a time. Simply use Android Studio's built in feature to convert Java to Kotlin. 

Convert Java to Kotlin

Sometimes we want a pre-defined function to behave in a way that is specific to our application. To do this, we override another function. In this video, we explore overriding and creating multiple threads (processes) with AsyncTask.

Override Methods with AsyncTask

Create a function that will do work in our program. We'll expand on this function in the following sections.

Create and Refactor a Function
+ Classes, Objects and Null Checks
5 lectures 48:25

Understand the benefit of organizing our program into classes, the nouns of the programming language.


In Kotlin, creating a traditional class to represent a noun is easy. In this video, we create a simple class that represents a plant. This class is a Data Transfer Object, or DTO.

Create a Class to Represent a Plant

Now that we know what a class is, what is an object?


If we want to hold more than one object of the same type, we can hold them in a collection.

Example: Objects, Collections

If you declare a variable, and you do not assign anything to it, the variable holds nothing, or as we call it in programming, null. What happens when you invoke a function on a variable holding a null reference? Kotlin handles this in a different way than Java.

Null Checks
+ Using Android Components
6 lectures 56:11

In Android programming, an Intent can be used to trigger many things: another screen in our app; another app or library on the device; and inform our app of changes to the external environment (plugged in, wifi available, and so on)


A hands-on example that shows how to easily invoke the Camera in an Android Kotlin app.

Example: Camera, Image Gallery

Broadcast Receivers allow our Android program to respond to external events: plugged-in charging, wifi, Bluetooth, etc. We can respond to these events to make a higher quality, easier to use application.

Broadcast Receivers

Using our knowledge from the previous video, we create a Broadcast Receiver in this hands-on example.

Example: Broadcast Receiver

Android app users aren't always looking at the device screen, so we have to give multiple forms of feedback. In this video, we see how to change colors on Android widgets.

Change Colors on UI Elements

Using what we learned in the previous video, we'll change color on a button in our app.

Implementation: Change Colors Based on Feedback
+ Integrations
5 lectures 01:00:34

Applications respond to changes and conditions by making decisions. In this video, we explore how to make decisions with Kotlin.

Making Decisions

Using the knowledge we learned in the last video, implement decision making in our application.

Example: Making Decisions

Good programs integrate well with other programs and other sources of data. This generally requires parsing data: changing from an external format to a series of data that makes sense in our program.


A hands-on example where we parse JSON data into a set of usable Plant objects.

Example: JSON Parse

When a Java program wants to represent a Java object, it will invoke a function named toString(). If you don't override this function, you'll see a String representation of the object that doesn't necessarily make sense.

Overriding toString()
+ Images
5 lectures 57:23

Understand how we can use images in our application.

Image Overview and Strategy

In this video, we will download an image from the web, using a Networking utility.

Example: Download an Image from the Web

Once we've downloaded an image, display it in an ImageView widget.

Display an Image from the Web

Now that the fundamental features of our application are working, show a count of correct and incorrect answers.

Finishing Touches

Wow! It's been a long journey, and we're at the end. Review the major objectives of each section.

  • Practical, project-based approach.

Kotlin has been making waves ever since it was open sourced by JetBrains in 2011; it has been praised by developers across the world and is already being adopted by companies. This video provides a detailed introduction to Kotlin that shows you all its features and will enable you to write Kotlin code to production. We start with the basics: get you familiar with running Kotlin code, setting up, tools, and instructions that you can use to write basic programs. Next, we cover  object oriented code: functions and properties – all while using Kotlin’s new features.

About the author

Brandan Jones has been an Adjunct Assistant Professor for the University of Cincinnati since the 2000-2001 school year. He has taught many courses in programming, from introductory programming to full stack development.

Brandan proposed and created the first Android programming course at the University of Cincinnati, and has been teaching it ever since. He reapplied this course and taught it at Northwestern University’s School of Continuing Studies as well.

Brandan is the creator of the Android app PlantPlaces .com Mobile, which allows users to search for plants by color, and GPS plants. He wrote this app in 2012, using TDD principles. He used selected JSON feeds from that app in the examples in this video course.

Brandan’s mix of both academic and professional experience means that he brings real-world concepts to the classroom. Most of his high level classes include hands on experience with unit testing, scrum, and distributed version control systems.

Brandan holds a BS in Accounting and Management Information Systems from Miami University in Oxford, Ohio. He also earned a BS in Horticulture from the University of Cincinnati’s College of Design, Art, Architecture and Planning, and a Masters of Business Administration from the University of Cincinnati, Lindner College of Business, with concentrations in Operations Management and Real Estate Finance.

Who this course is for:
  • Software developers who want to write apps quickly, with minimal intrusion from boilerplate syntax.