Kotlin Multiplatform Academy icon

Kotlin Multiplatform Academy

KOTLINMobileAndroidIos

Share Kotlin code across Android, iOS, and beyond with Kotlin Multiplatform. From expect/actual to Compose Multiplatform and shipping shared modules.

🤖 AI-Powered📚 30 courses👥 100,000+ learners⭐ 4.9 rating

How You'll Learn

🎯
Interactive Lessons
Hands-on coding exercises with real-time feedback
🤖
AI Tutor
Get instant help from our AI when you're stuck
💻
Built-in Editor
Write and run code directly in your browser
🏆
Certificate
Earn a certificate when you complete the course
Curriculum

30 Courses

Every course in the Kotlin Multiplatform Academy learning path.

01

What Is Kotlin Multiplatform & Why It Wins

A14 lessons

Explain what KMP shares, what stays native, and when to reach for it on a real team.

  • Share Logic, Not UI: The KMP Promise
  • KMP vs Flutter vs React Native
  • Targets: Android, iOS, Desktop, Web, Server
  • +1 more
02

Set Up Your First KMP Project

A14 lessons

Install the toolchain and generate a working shared-module project from the wizard.

  • JDK, Android Studio & the KMP Plugin
  • Xcode & CocoaPods for the iOS Side
  • Generate a Project with the KMP Wizard
  • +1 more
03

Inside the KMP Project Structure

A14 lessonsPRO

Navigate Gradle modules and source sets so you always know where code belongs.

  • The shared Module vs the App Modules
  • commonMain, androidMain & iosMain
  • Reading the shared build.gradle.kts
  • +1 more
04

Write Your First Shared Function

A14 lessonsPRO

Author pure Kotlin in commonMain and call it from both Android and iOS.

  • A Greeting Function in commonMain
  • Call Shared Code from the Android App
  • Call Shared Code from the iOS App
  • +1 more
05

Kotlin Standard Library Across Platforms

A14 lessonsPRO

Use the parts of the Kotlin stdlib that work identically on every target.

  • Strings, Numbers & Collections Everywhere
  • map, filter & fold in Shared Code
  • Dates with kotlinx-datetime
  • +1 more
06

expect / actual: Bridge to Each Platform

A24 lessonsPRO

Declare a common API once and provide a real implementation per platform.

  • Why expect/actual Exists
  • Get the Platform Name per Target
  • expect/actual Classes & Properties
  • +1 more
07

Model Your Domain with Shared Data Classes

A24 lessonsPRO

Design clean shared models and enums that both apps consume.

  • Data Classes for Your Domain
  • Enums & Sealed Classes for State
  • Null Safety in Shared Models
  • +1 more
08

Share Real Business Logic

A24 lessonsPRO

Move calculations and rules into shared code so logic never drifts between apps.

  • A Shared Price & Tax Calculator
  • Format Currency & Numbers
  • Business Rules as Pure Functions
  • +1 more
09

Build Your First Reusable Shared Module

A24 lessonsPRO

Package shared logic into a clean module with a public API both apps use.

  • Design a Small Public API
  • internal vs public Visibility
  • Organize Packages Inside the Module
  • +1 more
10

Run It on Android & iOS Devices

A24 lessonsPRO

Launch the shared-powered app on both platforms and debug the wiring.

  • Run the Android App from Studio
  • Open & Run the iOS App in Xcode
  • How the iOS Framework Is Built
  • +1 more
11

Coroutines in Shared Code

B14 lessonsPRO

Run async work in commonMain and expose it cleanly to both platforms.

  • suspend Functions That Work Everywhere
  • Dispatchers Across Platforms
  • CoroutineScope & Lifecycle
  • +1 more
12

Reactive Streams with Kotlin Flow

B14 lessonsPRO

Model continuous data with Flow and consume it on each platform.

  • Flow Basics in Shared Code
  • StateFlow for Shared UI State
  • Operators: map, filter, combine
  • +1 more
13

Networking with Ktor Client

B14 lessonsPRO

Make real HTTP requests from shared code using the multiplatform Ktor client.

  • Add Ktor & Pick Platform Engines
  • Your First GET Request
  • POST, Headers & Query Params
  • +1 more
14

JSON with kotlinx.serialization

B14 lessonsPRO

Map API JSON to Kotlin models and back with the multiplatform serializer.

  • @Serializable Data Models
  • @SerialName & Custom Field Mapping
  • Nullable, Default & Optional Fields
  • +1 more
15

The Repository Layer in Shared Code

B14 lessonsPRO

Combine networking and parsing into a clean repository the apps depend on.

  • Define a Repository Interface
  • Wrap the API Behind the Repository
  • Map DTOs to Domain Models
  • +1 more
16

Local Storage with SQLDelight

B14 lessonsPRO

Persist data in a type-safe SQLite database shared across platforms.

  • Add SQLDelight & Write .sq Schemas
  • Platform SqlDriver Setup
  • Insert, Query & Update Rows
  • +1 more
17

Key-Value Storage with Multiplatform Settings

B14 lessonsPRO

Store preferences and small values portably across Android and iOS.

  • Why a Settings Abstraction
  • Read & Write Typed Values
  • Defaults & Clearing Keys
  • +1 more
18

Dependency Injection with Koin

B14 lessonsPRO

Wire repositories, clients and use cases together with shared Koin modules.

  • Declare a Shared Koin Module
  • single vs factory Scopes
  • Start Koin on Android & iOS
  • +1 more
19

Shared ViewModels for Both Apps

B14 lessonsPRO

Build presentation logic once and drive both Compose and SwiftUI from it.

  • A Cross-Platform ViewModel Base
  • Expose UI State as StateFlow
  • Handle User Intents & Actions
  • +1 more
20

Error Handling Across Platforms

B14 lessonsPRO

Model failures in shared code and surface friendly messages on each app.

  • A Sealed Result Type
  • Catch Network & Parsing Errors
  • Map Errors to UI Messages
  • +1 more
21

Compose Multiplatform: Shared UI

B24 lessonsPRO

Write one Compose UI that renders on Android, iOS and desktop.

  • Enable Compose Multiplatform
  • Layouts, Modifiers & Theming
  • State & Recomposition in Shared UI
  • +1 more
22

Navigation & Resources in Compose MP

B24 lessonsPRO

Add multi-screen navigation and shared images, fonts and strings.

  • Navigate Between Shared Screens
  • Pass Arguments & Deep Links
  • Shared Images, Fonts & Strings
  • +1 more
23

Call Shared Code from Swift Like a Pro

B24 lessonsPRO

Master the Kotlin-to-Swift bridge so iOS devs enjoy your API.

  • How Kotlin Maps to Objective-C
  • Suspend Functions as Swift async
  • Collect Flows from Swift
  • +1 more
24

Interop with Native iOS Frameworks

B24 lessonsPRO

Call Apple APIs and your own native code directly from Kotlin/Native.

  • Use Apple Frameworks from Kotlin
  • Memory & ARC in Kotlin/Native
  • cinterop with C Libraries
  • +1 more
25

Platform-Specific APIs Done Right

B24 lessonsPRO

Access device capabilities per platform behind one clean shared interface.

  • Design a Capability Interface
  • expect/actual for Device Info
  • File System & Paths per Platform
  • +1 more
26

Concurrency & Threading Models

B24 lessonsPRO

Reason about Kotlin/Native memory and threading to avoid subtle crashes.

  • The New Memory Manager Explained
  • Main vs Background on iOS
  • Mutable State & Race Conditions
  • +1 more
27

Test Your Shared Code

B24 lessonsPRO

Write fast, reliable tests that run in commonTest and on every target.

  • kotlin.test in commonTest
  • Test suspend Functions & Flows
  • Fake the Ktor Client & Repos
  • +1 more
28

Architect a Real KMP App

B24 lessonsPRO

Assemble layers, modules and boundaries into a maintainable production architecture.

  • Layered Architecture for KMP
  • Use Cases & Domain Boundaries
  • Split Shared Code into Modules
  • +1 more
29

Publish a Kotlin Multiplatform Library

B24 lessonsPRO

Package and release a reusable KMP library for other teams to consume.

  • Configure maven-publish for KMP
  • Ship an XCFramework for iOS
  • Versioning & API Stability
  • +1 more
30

Performance, CI/CD & Shipping KMP

B24 lessonsPRO

Profile, automate and release a KMP app confidently to both stores.

  • Speed Up Gradle & iOS Builds
  • Profile & Shrink the iOS Framework
  • CI Pipelines for Android & iOS
  • +1 more
FAQ

Frequently Asked Questions

Is the Kotlin Multiplatform Academy course free?

Yes. You can start the Kotlin Multiplatform Academy course for free and complete its interactive lessons at no cost. An optional PRO subscription unlocks advanced AI tools and a shareable certificate.

Do I need prior experience to learn KOTLIN?

No. The course begins with the fundamentals and gradually moves to more advanced topics, so you can start even with no prior KOTLIN experience.

How will I learn KOTLIN on CoddyKit?

You learn by doing. Short interactive lessons pair a clear explanation with a hands-on coding exercise that runs in real time, and a 24/7 AI tutor gives personalized help whenever you get stuck.

Do I get a certificate for completing Kotlin Multiplatform Academy?

Yes. PRO learners can take an exam and earn a shareable certificate of completion with a verifiable code for the Kotlin Multiplatform Academy course.

Can I learn KOTLIN on my phone?

Yes. CoddyKit is available on the web and as native iOS and Android apps, so you can learn KOTLIN on any device and your progress syncs across them.

Start Kotlin Multiplatform Academy Now

Join thousands of learners mastering programming with AI-powered lessons.

Get Started Free →Browse All Courses