Kotlin for Android & Java Developers: Clean Code on Android
4.6 (1,029 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.
4,941 students enrolled

Kotlin for Android & Java Developers: Clean Code on Android

Become a professional Kotlin developer and write cleaner code in your Android apps than in Java, avoid boilerplate code
4.6 (1,029 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.
4,941 students enrolled
Created by Peter Sommerhoff
Last updated 1/2019
English
English
Current price: $139.99 Original price: $199.99 Discount: 30% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 9 hours on-demand video
  • 8 articles
  • 3 downloadable resources
  • 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
  • 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
Course content
Expand all 105 lectures 09:18:02
+ Introduction
3 lectures 10:25
Make the Most of this Course!
02:43
Who's Using Kotlin?
02:51
+ Get Ready
5 lectures 24:38
Introduction
01:44
Install the Java JDK 8
03:11
Install Android Studio
07:11
Set Up a Project in Android Studio
12:04
Recap
00:28
+ Kotlin Basics
17 lectures 01:28:22
Introduction
01:26
Variables and Data Types
08:26
Conditionals: "if" Expressions
08:20
Conditionals: "when" Expressions
08:35
Collections
09:41
"for" Loops
05:15
"while" Loops
03:41
Functions
06:22
Get Ready for Serious Kotlin Coding (Set up IntelliJ IDEA)
04:59
Create a main() Function
02:32
Challenge: Reading the User's Name from the Console
00:25
Challenge: Using Collections and Loops
00:26
Exceptions
06:12
Why No Checked Exceptions?
05:31
Recap
01:52
+ Functional Programming
17 lectures 01:37:54
Introduction
01:22
What is Functional Programming?
03:10
Functional Programming II
04:14
Use map() and flatMap()
07:46
Use take() and drop()
06:27
Use zip()
04:44
Challenge: Functional Programming for Data Analysis
00:40
Lazy Sequences
08:17
Case Study: Performance of Lazy Sequences
08:10
Code Along: Infinite Lazy Sequence of All Prime Numbers
12:28
Use "let" Operator for Scoping and Nullables
06:26
Use "with" for Many Calls on the Same Object
03:55
Inline Functions
06:59
Recap
02:23
+ Object-Orientation in Kotlin
24 lectures 02:32:54
Introduction
01:58
Classes
02:26
Properties with Getters & Setters
06:01
Primary and Secondary Constructors
08:26
Methods
03:46
Data Classes
09:50
Enums
06:12
Inheritance
05:21
Code Along: Inheritance Example
05:57
Abstract Classes
05:46
Interfaces
07:18
Overriding Rules
08:52
Visibilities
08:47
Companion Objects for "Static" Members
06:31
Object Declarations as Singletons
05:09
Packages and Imports
04:15
Generic Classes
07:52
Generic Functions
04:59
Covariance
07:06
Covariance: Java vs Kotlin
10:34
Covariance vs Contravariance: "out" and "in"
09:44
Recap
01:46
+ Kotlin for Android -- Fundamentals
7 lectures 33:16
Introduction
02:50
Create the App Project
04:51
Understand the Android Versions
03:08
Create a CardView Layout and Add UI Elements
09:43
Challenge: Set Texts and Image Source Programmatically
00:19
Challenge Solution
03:30
+ Kotlin for Android -- Implement a RecyclerView
6 lectures 28:58
Introduction
01:01
What is a RecyclerView?
05:17
Create the Data Class "Habit"
04:22
Implement the "HabitsAdapter" - Part I
05:00
Implement the "HabitsAdapter" - Part II
03:35
Implement the "HabitsAdapter" - Part III
09:43
+ Kotlin for Android -- Let Users Create Habits
10 lectures 48:43
Introduction
01:36
Add a Menu
01:57
Add a Second Activity
03:09
Use Intents to Switch Activities
07:14
Challenge: Build the Activity Layout
00:30
Challenge Solution
08:01
Let Users Choose an Image
06:44
Get the Selected Image Back (onActivityResult)
08:11
Show Error Messages to the User
07:39
Code Along: An Extension Function for "EditText"
03:42
+ Kotlin for Android -- Use SQLite the Kotlin Way!
15 lectures 01:11:54
Introduction
01:11
Introducing SQLite
01:28
Define the Contracts
04:14
Implement the Database Helper
06:32
Store a Habit to SQLite
08:03
Implementing Secure Transactions (that support Rollback)
04:08
Clean Code: Further Improving Transactions and Performance
06:33
Store the Habit in "CreateHabitActivity"
09:22
Read All Habits from SQLite
09:00
Challenge: Improve SQLiteDatabase.query(...)
00:12
Challenge Solution
04:27
Challenge: Improve Cursor.getString(...)
00:13
Challenge Solution
07:58
Add Files to the Virtual Device (Excursus)
01:42
+ Bonus
1 lecture 00:55
Bonus Lecture: Where to Go From Here
00:55
Requirements
  • Some programming experience (e.g. Java)
  • At least some Android experience
Description
  • Learn to use Kotlin the right way to actually improve your Android app code

  • Write null-safe, concise, and readable code in Kotlin using functional and object-oriented concepts

  • Work around unnecessary boilerplate code when using Android APIs (e.g. SQLite) using higher-order extension functions

  • Use Android Studio effectively to speed up your development workflow

  • Get your questions answered along the way should you ever get stuck


Why Take This Course?

I've been involved with Kotlin since late 2015, before it was released in its first stable version. As the instructor of the course "Kotlin for Beginners", I know which topics students are interested in or get stuck with.

My first Kotlin course is recommended from the official Kotlin website and from the official Android website as a resource to learn Kotlin for Android. So you can be sure to get quality teaching here.

After this course, you'll be able to confidently use Kotlin for any kind of project -- but we'll of course apply what we learn to Android app development in this course.


What Makes This Course Special?

Since Google's #IO17 announcement to officially support Kotlin on Android, many new courses on the topic have been released -- which is great because it further helps to spread the language.

What makes this course special is that while most other courses do not teach good coding style, this course will focus on producing clean code and teaches you to make use of Kotlin's amazing features to actually write better code than in Java. This way, you will get a huge benefit using Kotlin instead of Java, e.g. by avoiding boilerplate code around many Android APIs.


What This Course Is NOT

This course is not an Android reference, I assume you already have at least some Android experience. Instead, you'll learn to write cleaner code for your apps by applying Kotlin's powerful language features to avoid unnecessary ceremony around Android APIs. Also, at the end of the course, you'll be able to use Kotlin for any kind of project -- not just for Android apps.


What Students Say About Me (taken from "Kotlin for Beginners")

"TLDR; One of the best Kotlin course for beginners on Udemy! I took some time to write this review and wanted to finish the course THEN watch other courses offered here on Udemy and THEN want to see how good Peter was in teaching me basics of Kotlin so that I can apply the knowledge while writing actual android apps. And I am happy to report that it has helped me immensely. It wouldn't be wrong if I say that the I was easily understanding the WHYs and WHATs even if the teacher wasn't explaining in detail in other courses... Thank you Peter! You have taught me well! [...]"

- Hasaan

 

"Great introduction to Kotlin and programming for beginner programmers!"

- Per-Erik

 


"Easy to follow, instructor goes at a great pace that's friendly for beginners."

- Ronaldo

 

"beyond excellent!!!!"

- Mike

 

"Great start so far. Looking forward to a great course. Best online course I have taken, by far!!"

- James

 


"Found this to be a very good course to get an overview of Kotlin. Everything was explained clearly and the examples and exercises were very helpful. I'm glad that Peter is considering a course for Android using Kotlin since I'm curious about that subject."

- James

 

What You'll Learn

  • How to set up all you need for Android development using Kotlin (e.g. how to install Android Studio)

  • The basics of Kotlin: variables, null safety, immutability, conditionals, loops, functions, exception handling

  • Functional programming in Kotlin: higher-order functions, lambda expressions, lazy evaluation, lazy sequences, the Kotlin standard library

  • Object-oriented programming in Kotlin: all you know from Java + data classes, extension functions, smart casts, object declarations, differences from Java concerning inheritance

  • Android development with Kotlin: creating activities, layouts, menus, click listeners, working around unnecessarily complex Android APIs, improving SQLite transactions with extension functions, avoiding null in your code

 

------

What is Kotlin?

Kotlin is a modern language for the JVM, and the only officially supported language on Android beside Java. It's developed by Jetbrains, the makers of IntelliJ on which Android Studio is based.

Since Google's announcement to officially support Kotlin in 2017, interest in the language has radically increased -- and with it the number of tutorials, courses, books, and also job offers for Kotlin. It's a great time to dive into this modern language and get ahead of other Android developers!

With its modern language design that incorporates industry best practices, Kotlin allows you to write highly expressive, understandable and safe code -- while being 100% interoperable with Java. You can use any Java classes and methods from Kotlin and the other way around.

This courses shows you what language features I mean, and how you can apply them in order to write world-class code.

Who this course is for:
  • Android developers
  • Java developers
  • Anyone with some programming experience who wants to learn Kotlin for Android