Kotlin for Android & Java Developers
Clean Code
Peter Sommerhoff
  • Course duration: 9h 18m
"This course is your practical hands-on introduction to the world of Kotlin. You start out learning about Kotlin itself, its principles and its benefits, then dive right into functional programming and object orientation in Kotlin. You’ll then dive into building an Android app purely in Kotlin, using powerful language features and best practices. At the end, you'll be able to use Kotlin confidently in future Android apps as well as other platforms."
--Instructor Peter Sommerhoff

See it. Do it. Learn it! Kotlin for Android & Java Developers: Clean Code on Android is your ticket to unlocking the power of Kotlin for mobile applications. Since Google announced support for developing Android apps in Kotlin, interest in the language has been booming. And mobile developers with Kotlin skills have an edge in the job market. It’s time to skill up and get ahead!

Distributed by Manning Publications

This course was created independently by big data expert Peter Sommerhoff and is distributed by Manning through our exclusive liveVideo platform.

About the subject

Kotlin is a modern programming language for the JVM developed by Jetbrains, the makers of the IntelliJ IDE. Kotlin allows you to write highly expressive, understandable, and safe code—and it’s 100% interoperable with Java. Kotlin and Java are the only officially supported languages for Android development.

About the video

In this engaging liveVideo course, Kotlin expert Peter Sommerhoff shows you how to take advantage of language features designed to help you write code that’s clean, concise, and easy to maintain. What’s more, Kotlin for Android & Java Developers will show you how to avoid the most common coding errors in your Android apps.

Your visual learning experience begins with the Kotlin language basics. Next up are functional and object-oriented programming in Kotlin. Then, you’re ready to build a simple Android app using the Android Studio IDE and Gradle, an open-source build automation system. You’ll create an Android app that helps users stick to habits, like eating healthy or exercising regularly.

Peter Sommerhoff’s passion for Kotlin shines through. Following his knowledgeable and friendly instruction, you’ll complete your first Android app in Kotlin, identify code that can be made cleaner, and discover the many benefits for coding Android in Kotlin!
Table of Contents detailed table of contents


What You’ll Learn in this Course

Make the Most of this Course!

Who’s Using Kotlin?

Get ready


Install the Java JDK 8

Install Android Studio

Set Up a Project in Android Studio


Kotlin basics


Variables and Data Types


Null Safety in Kotlin

Conditionals: "if" Expressions

Conditionals: "when" Expressions


"for" Loops

"while" Loops


Get Ready for Serious Kotlin Coding (Set up IntelliJ IDEA)

Create a main() Function

Named Arguments & Default Parameter Values


Why No Checked Exceptions?


Functional programming


What is Functional Programming?

Functional Programming II

Lambdas & Higher-Order Functions

Use map() and flatMap()

Use take() and drop()

Use zip()

Chain Functions Together

Lazy Sequences

Case Study: Performance of Lazy Sequences

Code Along: Infinite Lazy Sequence of All Prime Numbers

Use "let" Operator for Scoping and Nullables

Use "with" for Many Calls on the Same Object

Use "use" for Closeable (like try-with-resources)

Inline Functions


Object oriented in Kotlin



Properties with Getters & Setters

Primary and Secondary Constructors


Extension Functions

Data Classes



Code Along: Inheritance Example

Abstract Classes


Overriding Rules

Smart Casts


Companion Objects for "Static" Members

Object Declarations as Singletons

Packages and Imports

Generic Classes

Generic Functions


Covariance: Java vs Kotlin

Covariance vs Contravariance: "out" and "in"


Kotlin for Android Fundamentals


Create the App Project

Understand the Android Versions

Create a CardView Layout and Add UI Elements

Use the "Kotlin Android Extensions"

?challenge solution

Kotlin for Android Implement a RecyclerView


What is a RecyclerView?

Create the Data Class "Habit"

Implement the "HabitsAdapter" - Part I

Implement the "HabitsAdapter" - Part II

Implement the "HabitsAdapter" - Part III

Kotlin for Android Let users create habits


Add a Menu

Add a Second Activity

Use Intents to Switch Activities

?create habit layout

Let Users Choose an Image

Get the Selected Image Back (onActivityResult)

Show Error Messages to the User

Code Along: An Extension Function for "EditText"

Kotlin for Android Use SQLite the Kotlin way


Introducing SQLite

Define the Contracts

Implement the Database Helper

Store a Habit to SQLite

Implementing Secure Transactions (that support Rollback)

Clean Code: Improving Transactions in Kotlin

Clean Code: Further Improving Transactions and Performance

Store the Habit in "CreateHabitActivity"

Read All Habits from SQLite

extension function do query

?extension functions cursor

Add Files to the Virtual Device (Excursus)


This course is perfect for Android developers using Java. No experience with Kotlin is required.

What you will learn

  • Write clean code with Kotlin
  • Avoid ceremony and boilerplate code around Android APIs
  • Use functional programming to write concise, expressive code
  • Create Android apps with Kotlin
  • Write readable SQLite transactions using extension functions in Kotlin
  • Use the Kotlin Android Extensions to avoid findViewById()
  • Create multiple activities, layouts, and menus

About the instructor

Peter Sommerhoff is the founder of CodeAlong.tv and has taught more than 35,000 learners worldwide how to code by combining the basics of software development with plenty of hands-on practice. He has a master’s degree in computer science, and he’s the author of Kotlin for Android App Development.

placing your order...

Don't refresh or navigate away from the page.
liveVideo $102.49 $204.99
Kotlin for Android & Java Developers (liveVideo) added to cart
continue shopping
go to cart

Prices displayed in rupees will be charged in USD when you check out.