Kotlin Help

Samples

This is a curated list of Kotlin Multiplatform Mobile samples.

Do you have a great sample that's a little different from the ones shown here? Feel free to create a pull request and tell us about it! You can use this PR example for reference.

Sample name

What's shared?

Popular libraries used

UI Framework

iOS integration

Platform APIs

Tests

JS target

Features

Kotlin Multiplatform Mobile Sample

Algorithms

-

XML, SwiftUI

Xcode build phases

-

-

  • expect/actual declarations

KMM RSS Reader

Models, Networking, Data Storage, UI State

SQLDelight, Ktor, DateTime, multiplatform-settings, Napier, kotlinx.serialization

Jetpack Compose, SwiftUI

Xcode build phases

-

-

  • Redux for sharing UI State

  • Published to Google Play and App Store

KaMPKit

Models, Networking, Data Storage, ViewModels

Koin, SQLDelight, Ktor, DateTime, multiplatform-settings, Kermit

Jetpack Compose, SwiftUI

CocoaPods

-

-

-

moko-template

Models, Networking, Data Storage, ViewModels

Moko Libraries, Ktor, multiplatform-settings

-

CocoaPods

-

-

  • Modular architecture

  • Shared features: Resource management, Runtime permissions access, Media access, UI lists management

  • Network layer generation from OpenAPI.

PeopleInSpace

Models, Networking, Data Storage

Koin, SQLDelight, Ktor

Jetpack Compose, SwiftUI

CocoaPods, Swift Packages

-

  • Android Wear OS

  • iOS

  • watchOS

  • macOS Desktop (Compose for Desktop)

  • Web (Compose for Web)

  • Web (Kotlin/JS + React Wrapper)

  • JVM

GitFox SDK

Models, Networking, Interactors

Ktor

XML, UIKit

Xcode build phases

-

-

  • Integrated into Flutter app

D-KMP-sample

Networking, Data Storage, ViewModels, Navigation

SQLDelight, Ktor, DateTime, multiplatform-settings

Jetpack Compose, SwiftUI

Xcode build phases

-

  • Implements the MVI pattern and the unidirectional data flow

  • Uses Kotlin's StateFlow to trigger UI layer recompositions

Food2Fork Recipe App

Models, Networking, Data Storage, Interactors

SQLDelight, Ktor, DateTime

Jetpack Compose, SwiftUI

CocoaPods

-

-

-

-

kmm-ktor-sample

Networking

Ktor, kotlinx.serialization, Napier

XML, SwiftUI

Xcode build phases

-

-

-

Currency Converter Calculator

Models, Networking, Data Storage, Algorithms, ViewModels

Ktor, SQLDelight, koin, moko-resources, kotlinx.datetime, multiplatform-settings

XML, SwiftUI

CocoaPods

-

  • Logic shared with the backend

todoapp

Models, Networking, Presentation, Navigation and UI

SQLDelight, Decompose, MVIKotlin, Reaktive

Jetpack Compose, SwiftUI

Xcode build phases

-

  • 99% of the code is shared

  • MVI architectural pattern

  • Shared UI across Android, Desktop and Web via Compose Multiplatform

kmm-arch-demo

Models, Networking, ViewModels, UI State

Ktor, kotlinx.serialization

XML, SwiftUI

CocoaPods

-

-

-

  • Uses Arch, a Kotlin Multiplatform Mobile library that is based on Spotify’s Mobius library but uses SharedFlow, StateFlow and coroutines instead of RxJava

Codeforces WatchR

Models, Networking, Data Storage, UI State

SQLDelight, Ktor, kotlinx.serialization

XML, UIKit

CocoaPods

-

  • Uses Redux (ReKamp) for sharing UI State

  • Published to Google Play and App Store

CatViewerDemo

Models, Networking, Data Storage, ViewModels

Ktor, multiplatform-settings, kotlinx.serialization

Jetpack Compose, SwiftUI

Xcode build phases

-

  • Android Architecture

  • Pagination

  • Works on M1

  • GitHubActions CI

  • Cats 🐈

Praxis KMM

Models, Networking, Data Storage

kotlinx.serialization, Ktor, Koin, SQLDelight

Jetpack Compose, SwiftUI, ReactJS

CocoaPods, Swift Packages

-

  • iOS

  • Android

  • Android Wear OS

  • watchOS

  • macOS Desktop (Swift UI)

  • Web (Kotlin/JS + React Wrapper)

Bookshelf

Models, Networking, Data Storage

Realm-Kotlin, Ktor, kotlinx.serialization

Jetpack Compose, SwiftUI

CocoaPods

-

-

-

  • Uses Realm for data persistence

Notflix

Models, Networking, Caching, ViewModels

Koin, Ktor, Multiplatform settings, kotlinx.coroutines, kotlinx.serialization, kotlinx.datetime, Napier

Jetpack Compose-Android, Compose Multiplatform-Desktop

-

-

  • Modular architecture

  • Runs on desktop

  • Sharing viewmodel

MultiplatformPlayground

ViewModels, Networking, Data Storage

SQLDelight, Ktor, Koin, kotlinx.serialization, moko-resources,

Jetpack Compose, SwiftUI

CocoaPods

Android only

  • Shared file upload

  • Multi-module setup

  • Shared file upload

  • sharing code between Backend - Mobile & Frontend platforms (macOS, iOS, Android)

mpp-sample-lib

Algorithms

-

-

-

-

  • Demonstrates how to create a multiplatform library (tutorial)

Last modified: 08 August 2022