Kotlin Android

Tags: Kotlin

Become a professional Kotlin developer and write cleaner code in your Android apps than in Java, avoid boilerplate code

Last updated 2022-01-10 | 4.4

- Write clean code with Kotlin
- Avoid ceremony and boilerplate code around Android APIs
- Use functional programming to write concise
- expressive code

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

* 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

Course content

10 sections • 105 lectures

What You'll Learn in this Course Preview 04:51

Make the Most of this Course! Preview 02:43

Who's Using Kotlin? Preview 02:51

Introduction Preview 01:44

Install the Java JDK 8 Preview 03:11

Install Android Studio Preview 07:11

Set Up a Project in Android Studio Preview 12:04

Recap Preview 00:28

Introduction Preview 01:26

Variables and Data Types Preview 08:26

Null Safety in Kotlin Preview 08:55

Conditionals: "if" Expressions Preview 08:20

Conditionals: "when" Expressions Preview 08:35

Collections Preview 09:41

"for" Loops Preview 05:15

"while" Loops Preview 03:41

Functions Preview 06:22

Get Ready for Serious Kotlin Coding (Set up IntelliJ IDEA) Preview 04:59

Create a main() Function Preview 02:32

Challenge: Reading the User's Name from the Console Preview 00:25

Challenge: Using Collections and Loops Preview 00:26

Named Arguments & Default Parameter Values Preview 05:43

Exceptions Preview 06:12

Why No Checked Exceptions? Preview 05:31

Recap Preview 01:52

Introduction Preview 01:22

What is Functional Programming? Preview 03:10

Functional Programming II Preview 04:14

Lambdas & Higher-Order Functions Preview 10:05

Use map() and flatMap() Preview 07:46

Use take() and drop() Preview 06:27

Use zip() Preview 04:44

Challenge: Functional Programming for Data Analysis Preview 00:40

Chain Functions Together Preview 06:19

Lazy Sequences Preview 08:17

Case Study: Performance of Lazy Sequences Preview 08:10

Code Along: Infinite Lazy Sequence of All Prime Numbers Preview 12:28

Use "let" Operator for Scoping and Nullables Preview 06:26

Use "with" for Many Calls on the Same Object Preview 03:55

Use "use" for Closeable (like try-with-resources) Preview 04:29

Inline Functions Preview 06:59

Recap Preview 02:23

Introduction Preview 01:58

Classes Preview 02:26

Properties with Getters & Setters Preview 06:01

Primary and Secondary Constructors Preview 08:26

Methods Preview 03:46

Extension Functions Preview 06:23

Data Classes Preview 09:50

Enums Preview 06:12

Inheritance Preview 05:21

Code Along: Inheritance Example Preview 05:57

Abstract Classes Preview 05:46

Interfaces Preview 07:18

Overriding Rules Preview 08:52

Smart Casts Preview 07:55

Visibilities Preview 08:47

Companion Objects for "Static" Members Preview 06:31

Object Declarations as Singletons Preview 05:09

Packages and Imports Preview 04:15

Generic Classes Preview 07:52

Generic Functions Preview 04:59

Covariance Preview 07:06

Covariance: Java vs Kotlin Preview 10:34

Covariance vs Contravariance: "out" and "in" Preview 09:44

Recap Preview 01:46

Introduction Preview 02:50

Create the App Project Preview 04:51

Understand the Android Versions Preview 03:08

Create a CardView Layout and Add UI Elements Preview 09:43

Use the "Kotlin Android Extensions" Preview 08:55

Challenge: Set Texts and Image Source Programmatically Preview 00:19

Challenge Solution Preview 03:30

Introduction Preview 01:01

What is a RecyclerView? Preview 05:17

Create the Data Class "Habit" Preview 04:22

Implement the "HabitsAdapter" - Part I Preview 05:00

Implement the "HabitsAdapter" - Part II Preview 03:35

Implement the "HabitsAdapter" - Part III Preview 09:43

Introduction Preview 01:36

Add a Menu Preview 01:57

Add a Second Activity Preview 03:09

Use Intents to Switch Activities Preview 07:14

Challenge: Build the Activity Layout Preview 00:30

Challenge Solution Preview 08:01

Let Users Choose an Image Preview 06:44

Get the Selected Image Back (onActivityResult) Preview 08:11

Show Error Messages to the User Preview 07:39

Code Along: An Extension Function for "EditText" Preview 03:42

Introduction Preview 01:11

Introducing SQLite Preview 01:28

Define the Contracts Preview 04:14

Implement the Database Helper Preview 06:32

Store a Habit to SQLite Preview 08:03

Implementing Secure Transactions (that support Rollback) Preview 04:08

Clean Code: Improving Transactions in Kotlin Preview 06:51

Clean Code: Further Improving Transactions and Performance Preview 06:33

Store the Habit in "CreateHabitActivity" Preview 09:22

Read All Habits from SQLite Preview 09:00

Challenge: Improve SQLiteDatabase.query(...) Preview 00:12

Challenge Solution Preview 04:27

Challenge: Improve Cursor.getString(...) Preview 00:13

Challenge Solution Preview 07:58

Add Files to the Virtual Device (Excursus) Preview 01:42

Bonus: Reach Your Full Potential As A Software Developer Preview 00:15