We may earn an affiliate commission when you visit our partners.
Peter Sommerhoff
  • 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?

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

Enroll now

What's inside

Learning objectives

  • 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

Syllabus

Introduction
What You'll Learn in this Course
Make the Most of this Course!
Who's Using Kotlin?
Read more
Get Ready
Null Safety in Kotlin
Install the Java JDK 8
Install Android Studio
Set Up a Project in Android Studio
Recap
Kotlin Basics
Lazy Sequences
Variables and Data Types
Conditionals: "if" Expressions
Conditionals: "when" Expressions
Collections
"for" Loops
"while" Loops
Functions
Get Ready for Serious Kotlin Coding (Set up IntelliJ IDEA)
Create a main() Function
Challenge: Reading the User's Name from the Console
Challenge: Using Collections and Loops
Named Arguments & Default Parameter Values
Exceptions
Why No Checked Exceptions?
Functional Programming
Primary and Secondary Constructors
What is Functional Programming?
Functional Programming II
Lambdas & Higher-Order Functions
Use map() and flatMap()
Use take() and drop()
Use zip()
Challenge: Functional Programming for Data Analysis
Chain Functions Together
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-Orientation in Kotlin
Classes
Properties with Getters & Setters
Methods
Extension Functions
Data Classes
Enums
Inheritance
Code Along: Inheritance Example
Abstract Classes
Interfaces
Overriding Rules
Smart Casts
Visibilities
Companion Objects for "Static" Members
Object Declarations as Singletons
Packages and Imports
Generic Classes
Generic Functions
Covariance
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: Set Texts and Image Source Programmatically
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
Challenge: Build the Activity 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

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Focuses on writing clean code, which is essential for maintainability and collaboration in professional software development environments
Teaches how to avoid boilerplate code around Android APIs, potentially saving developers time and effort in their projects
Assumes prior Android experience, so learners without this background may need to acquire it before taking this course
Covers functional programming concepts in Kotlin, which can broaden a developer's skill set and improve code quality
Explores object-oriented programming in Kotlin, building upon Java knowledge and introducing new features like data classes and extension functions
Uses Android Studio, which is the standard IDE for Android development, ensuring that learners gain practical, industry-relevant skills

Save this course

Save Kotlin for Android & Java Developers: Clean Code on Android to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Kotlin for Android & Java Developers: Clean Code on Android with these activities:
Review Java Fundamentals
Solidify your understanding of Java fundamentals, as Kotlin is interoperable with Java and understanding Java concepts will aid in grasping Kotlin's features and differences.
Show steps
  • Review Java syntax and data types.
  • Practice object-oriented programming concepts in Java.
  • Work through Java tutorials and exercises.
Read 'Effective Kotlin'
Learn best practices for Kotlin development to write cleaner and more maintainable code.
View Kotlin Coroutines on Amazon
Show steps
  • Obtain a copy of 'Effective Kotlin'.
  • Read the book chapter by chapter, taking notes on key concepts.
  • Apply the principles learned to your Kotlin projects.
Kotlin Koans
Practice Kotlin syntax and features through interactive exercises to reinforce your understanding of the language.
Show steps
  • Access the Kotlin Koans online or through IntelliJ IDEA.
  • Work through each koan, completing the exercises.
  • Review solutions and explanations for each koan.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Write a Blog Post on Kotlin Android Extensions
Deepen your understanding of Kotlin Android Extensions by explaining its benefits and usage in a blog post.
Show steps
  • Research Kotlin Android Extensions thoroughly.
  • Write a clear and concise blog post explaining its features.
  • Include code examples to illustrate its usage.
  • Publish the blog post on a platform like Medium or your personal blog.
Refactor a Java Android App to Kotlin
Gain practical experience by converting an existing Java-based Android application to Kotlin, applying the concepts learned in the course.
Show steps
  • Choose a small to medium-sized Java Android app.
  • Convert Java files to Kotlin incrementally.
  • Test the app thoroughly after each conversion.
  • Refactor the code to use Kotlin's features effectively.
Read 'Android Development with Kotlin'
Learn how to build Android applications using Kotlin by following a comprehensive guide.
Show steps
  • Obtain a copy of 'Android Development with Kotlin'.
  • Read the book chapter by chapter, taking notes on key concepts.
  • Follow the code examples and build sample Android applications.
Contribute to a Kotlin Android Library
Enhance your skills by contributing to an open-source Kotlin Android library, gaining experience in collaborative development and best practices.
Show steps
  • Find an open-source Kotlin Android library on GitHub.
  • Identify an issue or feature to work on.
  • Fork the repository and create a branch for your changes.
  • Implement the changes and submit a pull request.

Career center

Learners who complete Kotlin for Android & Java Developers: Clean Code on Android will develop knowledge and skills that may be useful to these careers:
Android Application Developer
An Android Application Developer creates applications for the Android platform. This course is highly relevant, as it focuses on using Kotlin, the officially supported language for Android development, to write clean and efficient code for Android applications. The course will help an Android Application Developer utilize Kotlin's features to avoid boilerplate code around Android APIs, create multiple activities, layouts, menus, and implement RecyclerViews. This course teaches developers to optimize their code and make full use of Kotlin's capabilities.
Mobile Application Developer
A Mobile Application Developer creates applications for mobile devices. This course is helpful for a Mobile Application Developer who works on the Android platform because it specifically delves into using Kotlin, a modern language, to build Android applications. The course emphasizes writing readable code, avoiding boilerplate code through higher-order extension functions, and working with Android APIs effectively. This course allows one to create user interfaces and manage application logic using Kotlin's functional and object-oriented concepts.
Mobile Software Developer
A Mobile Software Developer builds software for mobile devices. This course is directly applicable to a Mobile Software Developer working on the Android platform, as it provides instruction on how to use Kotlin, an officially supported language, to create Android applications. This course teaches how to develop user interfaces and implement application logic, using functional and object oriented concepts in Kotlin. This course also features techniques to avoid unnecessary boilerplate code when using Android APIs.
Software Engineer
A Software Engineer designs, develops, and maintains software systems. This course helps Software Engineers who wish to improve their Android development skills using Kotlin to write cleaner code. Software Engineers will benefit from learning how to apply features of Kotlin for Android development such as functional programming, extension functions, and null safety. Taking this course will allow a Software Engineer to write better Android applications.
Application Programmer
An Application Programmer writes code for software applications. This course aids an Application Programmer who wishes to specialize in modern Android development with Kotlin, learning features such as functional programming, extension functions, and null safety. The course helps an Application Programmer learn how to write cleaner, more readable code and create Android app activities, layouts, and menus, by applying Kotlin's powerful language features.
Software Developer
A Software Developer writes and maintains code. This course may be useful for a Software Developer who wants to improve their Android development using Kotlin. Developers who take this course can learn to use Kotlin to avoid boilerplate code, use extension functions, improve SQLite transactions, and work with Android APIs effectively. This course focuses on writing clean code that is both readable and maintainable.
Computer Programmer
A Computer Programmer writes code for software. This course may be useful for a Computer Programmer who is interested in learning a new programming language and concepts. While the primary focus of this course is Android application development using Kotlin, this course would help any Computer Programmer to understand the basics, as well as functional and object oriented programming, which are applicable to any software development project. This course is a good starting point for a Computer Programmer interested in mobile application development.
Java Developer
A Java Developer writes code using Java. This course may be useful for a Java developer who wishes to transition to Kotlin for Android or to enhance their existing skills to use Kotlin for any type of project. The course covers functional and object-oriented programming in Kotlin, key concepts that can be applied to their existing projects or new ones. A Java developer should take this course to help learn to write concise and expressive code.
Backend Developer
A Backend Developer is responsible for server-side logic. This course may be useful for a Backend Developer who wants to understand modern Android application development and Kotlin's functional and object oriented concepts. Though the course focuses on Android development, the course also teaches fundamentals of the Kotlin language that apply to other software applications. This course may help a Backend Developer to adopt Kotlin on other application development platforms.
Systems Programmer
A Systems Programmer works on low-level software. This course may be useful for a Systems Programmer who is interested in learning a modern language like Kotlin for any type of project. While the primary focus of this course is Android application development, it provides a thorough introduction to Kotlin's features including functional programming, object oriented programming, and null safety. A Systems Programmer would benefit from understanding Kotlin's capabilities.
Web Application Developer
A Web Application Developer creates applications for web browsers. This course may be useful for a Web Application Developer because it introduces Kotlin, a modern language that has applications beyond Android development. While this course focuses on Android, it teaches core concepts such as functional and object-oriented programming, which are beneficial for all types of software development. This course may help a Web Application Developer who wishes to expand into mobile development.
Software Architect
A Software Architect designs the high-level structure of software systems. This course may be useful for a Software Architect who wishes to understand modern mobile application development, specifically using Kotlin on the Android platform. Although the course focuses primarily on practical Android with Kotlin, it introduces core concepts such as functional and object-oriented programming that are necessary to make architectural choices. A Software Architect may benefit from understanding Kotlin's capabilities in this course.
Technical Lead
A Technical Lead guides a team of developers. This course may be useful for a Technical Lead who wants to understand modern Android application development, particularly with Kotlin. Although this course focuses on practical implementation of Android apps, it introduces concepts such as clean coding practices and functional programming in Kotlin. A Technical Lead can use this knowledge to better guide their team toward best practices and higher quality software.
Database Administrator
A Database Administrator manages databases. This course may be useful for a Database Administrator who wants to understand how mobile applications interact with databases, specifically SQLite, using Kotlin. Although the primary focus of this course is Android application development, it includes how to improve SQLite transactions with extension functions. A Database Administrator might take this course to gain insight into backend data interaction with mobile apps.
Quality Assurance Engineer
A Quality Assurance Engineer tests software to verify its quality. This course may be useful for a Quality Assurance Engineer who tests the functionality of Android applications because it teaches how these applications are built with Kotlin. Understanding the development process, particularly the use of functional and object-oriented programming, can help a Quality Assurance Engineer to write more effective tests. This course will give an engineer insight into application structure.

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Kotlin for Android & Java Developers: Clean Code on Android.
Provides in-depth guidance on writing idiomatic and effective Kotlin code. It covers best practices, common pitfalls, and advanced features of the language. Reading this book will help you write cleaner, more maintainable, and more performant Kotlin code, aligning perfectly with the course's emphasis on clean code principles. It serves as a valuable reference for both beginners and experienced developers.
Provides a comprehensive guide to building Android applications using Kotlin. It covers various aspects of Android development, including UI design, data persistence, networking, and testing. Reading this book will help you gain a deeper understanding of how to apply Kotlin to real-world Android projects. It valuable resource for both beginners and experienced Android developers looking to transition to Kotlin.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser