Kotlin
Modern, concise, and safe programming language for JVM and Android development
Table of Contents
Getting Started
Kotlin basics and fundamentals
Variables & Types
Variable declarations and basic types
String Templates
String interpolation and manipulation
Null Safety
Kotlin null safety system
Nullable Types
Working with nullable types safely
Null Safety Patterns
Advanced null handling patterns
Functions
Function declarations and features
Function Basics
Function syntax and parameters
Higher-Order Functions
Functions as parameters and lambdas
Classes & Objects
Object-oriented programming in Kotlin
Classes
Class declarations and constructors
Inheritance
Class inheritance and polymorphism
Data Classes & Objects
Data classes, objects, and companions
Data Classes
Classes for holding data
Objects & Companions
Singleton objects and companion objects
Collections
Lists, Sets, Maps and operations
Collection Types
Lists, Sets, and Maps
Collection Operations
Transformations and aggregations
Control Flow
Conditionals and loops
Conditionals
if, when, and conditional expressions
Loops
for, while, and loop control
Extensions
Extension functions and properties
Extension Functions
Adding functions to existing types
Scope Functions
let, run, with, apply, also
Coroutines
Asynchronous programming with coroutines
Coroutine Basics
Launching and managing coroutines
Coroutine Context
Dispatchers and coroutine context
Generics
Generic types and variance
Generic Classes & Functions
Type parameters and constraints
Delegation
Class and property delegation
Delegation Patterns
Class delegation and delegated properties
DSL Building
Creating domain-specific languages
DSL Construction
Building type-safe DSLs
Annotations & Reflection
Custom annotations and reflection
Annotations
Creating and using annotations
Interoperability
Java interop and platform types
Java Interop
Calling Java from Kotlin and vice versa
Advanced Features
Inline classes, contracts, and more
Inline & Value Classes
Performance optimizations