This is a curated list of cross-platform projects created with Kotlin Multiplatform. Some share almost all their functionality using Compose Multiplatform for the user interface. Others use native code for the user interface and share, for example, only the data model and algorithms. To get started with a new Kotlin Multiplatform application, we recommend using the web wizard.
You can find even more sample projects on GitHub, see the kotlin-multiplatform topic. See the GitHub documentation to add your Kotlin Multiplatform project to this topic and help the community.
Name | Description | What's shared? | Noteworthy libraries | User interface |
Image Viewer | An application for capturing, viewing, and storing pictures. Includes support for maps. Uses Compose Multiplatform for the UI. Introduced at KotlinConf 2023. |
|
kotlinx-serialization kotlinx-datetime kotlinx-coroutines play-services-maps play-services-locations android-maps-compose accompanist-permissions |
|
Confetti | A showcase of many different aspects of Kotlin Multiplatform and Compose Multiplatform. The use case is an application for fetching and displaying information about conference schedules. Includes support for the Wear and Auto platforms. Uses GraphQL for client-server communications. The architecture is discussed in-depth at KotlinConf 2023. |
|
kotlinx-serialization kotlinx-datetime kotlinx-coroutines decompose koin jsonpathkt-kotlinx horologist google-cloud firebase bare-graphql apollo accompanist |
|
NYTimes KMP | A Compose Multiplatform based version of the New York Times application. Allows the user to browse and read articles. Note that to build and run the application, you will need an API key from the New York Times. |
|
kotlinx-serialization kotlinx-datetime kotlinx-coroutines ktor-client molecule decompose horologist |
|
Sessionize / Droidcon | An application for viewing the agenda at Droidcon events using the Sessionize API. Can be customized for use with any event that stores talks in Sessionize. Integrates with Firebase and so requires a Firebase account to run. |
|
kotlinx-coroutines kotlinx-datetime ktor-client koin multiplatform-settings firebase kermit accompanist hyperdrive-multiplatformx |
|
Chat | A demonstration of how to embed Compose Multiplatform components within a SwiftUI interface. The use case is online messaging. |
|
|
|
KMM RSS Reader | A sample application for consuming RSS feeds designed to show how Kotlin Multiplatform can be used in production. The UI is implemented natively, but there is an experimental branch showing how Compose Multiplatform could be used on iOS and desktop. Networking is accomplished using the Ktor HTTP Client, while XML parsing is implemented natively. The Redux architecture is used for sharing UI State. |
|
kotlinx-serialization kotlinx-coroutines ktor-client voyager coil multiplatform-settings napier |
|
Tivi | An application for tracking television shows via Trakt.tv. Uses Coroutines for concurrency and Compose for the UI. Designed to showcase the latest libraries and tools. |
|
kotlinx.serialization kotlinx.coroutines ktor-client lyricist circuit firebase |
|
People In Space | A showcase of the many different platforms on which Kotlin Multiplatform can run. The use case is to show the number of people currently in space and the position of the International Space Station. |
|
kotlinx-serialization kotlinx-coroutines kotlinx-datetime ktor-client koin multiplatform-settings |
|
Focus Bloom | A productivity and time management application. Allows users to schedule tasks and provides feedback on their accomplishments. |
|
kotlinx.serialization kotlinx.coroutines kotlinx.datetime koin voyager multiplatform-settings |
|
Recipe App | A demonstration application for viewing recipes. Showcases the use of animations. |
|
|
|
Kotlin Multiplatform Mobile Sample | A simple calculator application. Showing how to integrate Kotlin and native code using expected and actual declarations. | Algorithms |
|
|
KaMPKit | A collection of code and tools for Kotlin Multiplatform development. Designed to showcase libraries, architectural choices, and best practices when building Kotlin Multiplatform applications. The use case is downloading and displaying information about dog breeds. Introduced in this video tutorial. |
|
ktor-client koin multiplatform-settings kermit |
|
D-KMP-sample | A sample application for the Declarative UIs with Kotlin MultiPlatform architecture. The use case is retrieving and displaying vaccination statistics for different countries. |
|
ktor-client multiplatform-settings |
|
Bookshelf | A demonstration of how to use the Realm database in a Kotlin Multiplatform application. |
|
ktor-client kotlinx.serialization realm-kotlin |
|
Notflix | An application that consumes data from The Movie Database to display current trending, upcoming, and popular movies and TV shows. Requires that you create an API key with The Movie Database. |
|
kotlinx-coroutines kotlinx-serialization kotlinx-datetime ktor-client multiplatform-settings napier |
|
Twine - RSS Reader | Twine is a multiplatform RSS reader app built using Kotlin and Compose Multiplatform. It features a nice user interface and experience to browse through the feeds and supports Material 3 content-based dynamic theming. |
|
kotlinx-coroutines kotlinx-serialization kotlinx-datetime ktor-client napier decompose |
|