Skip to content

TypingDad logoTypingDadFree

Practice that's friendly and fast

🚀 Kotlin Programs

105 Essential Programs from Beginner to Advanced

Your Progress

0/105Total
0/20Beginner
0/35Intermediate
0/50Advanced
105Total Programs
20Beginner
35Intermediate
50Advanced
12Categories

Filter by Category

Filter by Level

105 programs shown
🟢

Hello World

#1

Print Hello World

BeginnerBasics
🟢

Add Numbers

#2

Add two variables

BeginnerBasics
🟢

String Interpolation

#3

Print variables inside string

BeginnerBasics
🔵

Even or Odd

#4

Check even or odd

BeginnerConditions
🔵

Largest of Two

#5

Find largest number

BeginnerConditions
🔄

Factorial

#6

Find factorial of an integer

BeginnerLoops
🔄

Fibonacci

#7

Print Fibonacci series

BeginnerLoops
📝

Reverse String

#8

Reverse a string

BeginnerStrings
📝

Palindrome String

#9

Check palindrome

BeginnerStrings
📚

Sum of Array

#10

Find sum of array elements

BeginnerArrays
📝

Count Vowels

#11

Count vowels in a string

BeginnerStrings
🔵

Leap Year

#12

Check if leap year

BeginnerConditions
🔵

When Statement

#13

Using when for grades

BeginnerConditions
🟢

Random Number

#14

Generate random Int

BeginnerBasics
📊

Map Basics

#15

Key value pairs

BeginnerCollections
🟢

Null Safety

#16

Safely unwrap value

BeginnerBasics
⚙️

Function Basics

#17

Simple function

BeginnerFunctions
📊

Set Basics

#18

Unique items

BeginnerCollections
🏗️

Class Basics

#19

Class properties

BeginnerOOP
🔄

For Each

#20

Iterate array

BeginnerLoops
🔗

Map List

#21

Transform list

IntermediateLambdas
🔗

Filter List

#22

Filter elements

IntermediateLambdas
🔗

Reduce List

#23

Aggregate elements

IntermediateLambdas
🏗️

Data Class

#24

Holds data automatically

IntermediateOOP
🏗️

Inheritance

#25

open class

IntermediateOOP
🏗️

Interface

#26

Define requirements

IntermediateOOP
⚙️

Extension Function

#27

Extend existing types

IntermediateFunctions
🟢

Enum Class

#28

Enums with values

IntermediateBasics
🏗️

Sealed Class

#29

Restricted class hierarchy

IntermediateOOP
🟢

Elvis Operator

#30

?: for null defaults

IntermediateBasics
📝

String Templates

#31

Evaluate in string

IntermediateStrings
🟢

Pair and Triple

#32

Tuples in Kotlin

IntermediateBasics
🏗️

Companion Object

#33

Static members

IntermediateOOP
🏗️

Primary Constructor

#34

Direct properties

IntermediateOOP
🏗️

Secondary Constructor

#35

constructor keyword

IntermediateOOP
🟢

Type Checking

#36

is keyword

IntermediateBasics
🟢

Safe Cast

#37

as? operator

IntermediateBasics
🔗

Higher Order Function

#38

Pass function as arg

IntermediateLambdas
📊

MapNotNull

#39

Filter nulls

IntermediateCollections
🏗️

Lazy Delegation

#40

by lazy

IntermediateOOP
🧬

Generics

#41

Generic functions

IntermediateGenerics
📚

Exceptions

#42

Try Catch

IntermediateError Handling
⚙️

Infix Function

#43

Call without dots

IntermediateFunctions
🏗️

Operator Overloading

#44

plus operator

IntermediateOOP
🏗️

Visibility Modifiers

#45

private/internal

IntermediateOOP
📊

FlatMap

#46

Flatten nested lists

IntermediateCollections
🧬

Any / Unit

#47

Kotlin root types

IntermediateGenerics
📊

Set Intersect

#48

intersect operation

IntermediateCollections
🧮

Binary Search

#49

O(log n) search

IntermediateAlgorithms
🧮

Bubble Sort

#50

Sorting arrays

IntermediateAlgorithms

Coroutines Basics

#51

launch / delay

AdvancedCoroutines

Async / Await

#52

Return values

AdvancedCoroutines

Suspend Functions

#53

suspend keyword

AdvancedCoroutines

Flow Basics

#54

Asynchronous stream

AdvancedCoroutines

Map Flow

#55

Transform flow

AdvancedCoroutines
⚙️

Scope Functions

#56

let, run, with

AdvancedFunctions
⚙️

Also Function

#57

also scope

AdvancedFunctions
⚙️

Apply Function

#58

apply scope

AdvancedFunctions
⚙️

Inline Functions

#59

inline keyword

AdvancedFunctions
🧬

Reified Type Parameters

#60

reified keyword

AdvancedGenerics
🟢

Type Aliases

#61

typealias keyword

AdvancedBasics
🏗️

Delegated Properties

#62

by map

AdvancedOOP
🏗️

Observable Delegation

#63

Delegates.observable

AdvancedOOP
🏗️

Vetoable Delegation

#64

Delegates.vetoable

AdvancedOOP
🏗️

Custom Delegate

#65

getValue / setValue

AdvancedOOP
📊

Sequence Builder

#66

sequence { yield() }

AdvancedCollections
🏗️

Destructuring Objects

#67

componentN

AdvancedOOP
📊

Destructuring Maps

#68

For loops

AdvancedCollections
⚙️

Contracts

#69

kotlin.contracts

AdvancedFunctions
📝

Regex

#70

Regular expressions

AdvancedStrings
🏗️

Annotations

#71

Custom annotations

AdvancedOOP
🧬

Reflection

#72

KClass, KProperty

AdvancedGenerics
🟢

Duration API

#73

kotlin.time

AdvancedBasics
📱

JSON Parsing

#74

kotlinx.serialization

AdvancedAndroid

Channel Basics

#75

Send / Receive

AdvancedCoroutines

Produce Builder

#76

Coroutine Produce

AdvancedCoroutines

Flow Zip

#77

Combine flows

AdvancedCoroutines

StateFlow

#78

Hot flows

AdvancedCoroutines

SharedFlow

#79

Broadcast hot flows

AdvancedCoroutines

CoroutineContext

#80

Dispatchers

AdvancedCoroutines

Exception Handling

#81

CoroutineExceptionHandler

AdvancedCoroutines

SupervisorJob

#82

Independent children

AdvancedCoroutines

WithContext

#83

Switch thread

AdvancedCoroutines
📱

Android Context

#84

Application Context

AdvancedAndroid
📱

Intent Basics

#85

Activity navigation

AdvancedAndroid
📱

SharedPreferences

#86

Save tiny data

AdvancedAndroid
📱

Room Database

#87

SQLite ORM

AdvancedAndroid
📱

Retrofit API

#88

REST Client

AdvancedAndroid
📱

Jetpack Compose

#89

@Composable

AdvancedAndroid
📱

State in Compose

#90

remember

AdvancedAndroid
📱

Koin DI

#91

Dependency Injection

AdvancedAndroid
📱

Hilt DI

#92

@HiltAndroidApp

AdvancedAndroid
📱

RecyclerView

#93

Adapter

AdvancedAndroid
📱

ViewModel

#94

UI State

AdvancedAndroid
📱

LiveData

#95

Lifecycle aware state

AdvancedAndroid
📱

WorkManager

#96

Background work

AdvancedAndroid
📚

Result Type

#97

Kotlin Result

AdvancedError Handling
⚙️

Crossinline

#98

Prevent non-local returns

AdvancedFunctions

Suspend Lazy

#99

Async lazy init

AdvancedCoroutines

Mutex

#100

Mutual exclusion

AdvancedCoroutines
🟢

Bitwise Operators

#101

shl, shr, and, or

AdvancedBasics
🔗

Functional Composition

#102

compose functions

AdvancedLambdas
🧮

Graph DFS

#103

Depth First

AdvancedAlgorithms
🧮

Graph BFS

#104

Breadth First

AdvancedAlgorithms
🧮

Dijkstra

#105

Shortest Path

AdvancedAlgorithms