Yes, we're now running our only Summer Sale. All Courses are 30% off until 20th July, 2026:
Kotlin Tutorial
Last updated: May 4, 2026
Kotlin is a statically-typed programming language that can run on the JVM.
Learn all about developing with Kotlin, through the articles here. We’ll start with a high-level introduction to the language, then go into more details about the core concepts, working with lambdas, testing, manipulating files, working with popular Kotlin libraries and more.
.
.
.
.
.
Introduction
.
.
.
.
.
Core Concepts
- Guide to the “when{}” Block in Kotlin
- If-Else Expression in Kotlin
- Static Methods Behavior in Kotlin
- Void Type in Kotlin
- Comparator in Kotlin
- Kotlin Elvis Operator
- Comprehensive Guide to Null Safety in Kotlin
- Regular Expressions in Kotlin
- Try-with-resources in Kotlin
- Lazy Initialization in Kotlin
- Kotlin and Tail Recursion
.
.
.
.
.
Classes and Objects
- Kotlin const, var, and val Keywords
- Objects in Kotlin
- Getters and Setters in Kotlin
- Sealed Classes in Kotlin
- Generics in Kotlin
- Reflection with Kotlin
- Working with Enums in Kotlin
- Data Classes in Kotlin
- Anonymous Objects in Kotlin
- Kotlin Companion Object
.
.
.
.
.
Functions & Lambdas
- Lambda Expressions in Kotlin
- Returning Multiple Values From Kotlin Functions
- Introduction to Kotlin Coroutines
- Extension Functions in Kotlin
- Infix Functions in Kotlin
- Callback Functions in Kotlin
- Inline Functions in Kotlin
- Reified Functions in Kotlin
.
.
.
.
.
Collections
.
.
.
.
.
Strings
.
.
.
.
.
File Handling
- Reading from a File in Kotlin
- Writing to a File in Kotlin
- Creating a Directory in Kotlin
- Writing InputStream to File in Kotlin
- Kotlin Path API
- Read and Write to Excel With Kotlin
- Read and Write CSV Files With Kotlin
- IO and Default Dispatchers in Kotlin Coroutines
.
.
.
.
.
Libraries & Plugins
- HTTP Requests with Kotlin and khttp
- Using Lombok With Kotlin
- Code Formatting in Kotlin Using Ktlint
- Jackson Support for Kotlin
- Moshi JSON Library for Kotlin Applications
- Guide to Kotlin-Logging
- gRPC and Kotlin
- Koin: Lightweight Dependency Injection Framework
- Mapstruct With Kotlin’s Data Classes
- An Introduction to kotlinx-serialization Project
- Kotlin with Ktor
.
.
.
.
.
Testing
- JUnit 5 for Kotlin Developers
- Kotlin with Mockito
- Introduction to Kotest
- MockK: A Mocking Library for Kotlin
- A Guide to Kotlinx-Kover: a Kotlin Code Coverage Toolset
.
.
.
.
.
Kotlin with Spring
- Spring Dependency Injection With Kotlin
- Spring Boot and Kotlin
- Kotlin and Spring Boot @ConfigurationProperties
- Kotlin and @Valid Spring Annotation
- Using the @Value Annotation in Kotlin
- Spring Webflux with Kotlin
- Log Request/Response Body in Spring WebFlux with Kotlin
- Non-Blocking Spring Boot with Kotlin Coroutines
- Using Swagger (OpenAPI) for a Spring REST API With Kotlin
.
.
.
.
.
Kotlin and Java
- Java vs. Kotlin
- Convert Java to Kotlin
- Converting a Kotlin File to Java
- Java 8 Stream API Analogies in Kotlin
- Create a Java and Kotlin Project with Maven
- Creating Java static final Equivalents in Kotlin
- Convert Kotlin Array to Varargs
- Calling Kotlin Suspending Functions from Java
.
.
.
.
.