Skip to content

Latest commit

 

History

History
1205 lines (971 loc) · 114 KB

README.MD

File metadata and controls

1205 lines (971 loc) · 114 KB

Awesome Kotlin Multiplatform

Pull request Awesome GitHub Repo stars Maven Central

Kotlin Multiplatform technology simplifies the development of cross-platform projects. It reduces time spent writing and maintaining the same code for different platforms while retaining the flexibility and benefits of native programming.

This list contains libraries which support iOS and Android targets in first place.

Resources

🖼 Website
🚀 KMP Library Wizard
🍏 Compose Multiplatform App Wizard
📋 Documentation
❤️ Kotlin -> Swift Interopedia
📜 Blog
📺 YouTube
🤩 Samples
🗄 Jetpack Compose Components
🗄 Compose Material 3 Gallery
🎨 Material Theme Builder
📚 Kotlin Multiplatform by Tutorials
📚 Simplifying Application Development with Kotlin Multiplatform Mobile

Contents

🛠 Tooling 📋 Log 🌎 Network
📦 Storage 📱 Device 💉 Dependency Injection
🏗 Architecture 🔍 Analytics 🩺 Test
🔑 Crypto 📁 File 🚀 Language extensions
🗃 Serializer ⏰ Date-Time ➿ Asynchronous
🍎 Compose UI 🎨 Graphics 🧩 Service SDK
🧮 Arithmetic 🛢 Resources 🔧 Utils

🛠 Tooling

Kotlin Multiplatform Mobile plugin for Android Studio

The Kotlin Multiplatform Mobile (KMM) plugin helps you develop applications that work on both Android and iOS.

CocoaPods integration

Kotlin/Native provides integration with the CocoaPods dependency manager. You can add dependencies on Pod libraries as well as use a multiplatform project with native targets as a CocoaPods dependency (Kotlin Pod).

Amper new experimental way for project configuration GitHub Repo stars

Improving developer experience while configuring project setup. Kotlin multiplatform support is out-of-the-box. Project now has experimental status.

Swift Package integration GitHub Repo stars

This gradle plugin provides two-way interoperability between Kotlin dependencies and Kotlin-based Swift Package Multiplatform.

Carthage integration GitHub Repo stars

Adds support for integrating Carthage dependencies into a KMM project.

MOKO KSwift gradle plugin GitHub Repo stars

KSwift it's gradle plugin for generation Swift-friendly API for Kotlin/Native framework.

SKIE gradle plugin GitHub Repo stars

A Swift-friendly API Generator for Kotlin Multiplatform.

CompleteKotlin gradle plugin GitHub Repo stars

Gradle Plugin to enable auto-completion and symbol resolution for all Kotlin/Native platforms.

gradle-buildconfig-plugin gradle plugin GitHub Repo stars

A plugin for generating BuildConstants for any kind of Gradle projects: Java, Kotlin, Groovy, etc. Designed for KTS scripts.

BuildKonfig gradle plugin GitHub Repo stars

BuildConfig for Kotlin Multiplatform Project

Kotlin Native Xcode Support GitHub Repo stars

Plugin to facilitate debugging iOS applications using Kotlin Native in Xcode. Defines Kotlin files as source code, with basic highlighting. Allows you to set breakpoints and includes llvm support to view data in the debug window. Xcode does not officially support custom language definitions, but they also don't explicitly block them.

Dokka documentation generation tool GitHub Repo stars

Dokka is a documentation engine for Kotlin, performing the same function as javadoc for Java. Just like Kotlin itself, Dokka fully supports mixed-language Java/Kotlin projects. It understands standard Javadoc comments in Java files and KDoc comments in Kotlin files, and can generate documentation in multiple formats including standard Javadoc, HTML and Markdown.

KDoctor command-line tool GitHub Repo stars

KDoctor is a command-line tool that helps to set up the environment for Kotlin Multiplatform Mobile app development. It ensures that all required components are properly installed and ready for use. If something is missed or not configured Kdoctor highlights the problem and suggests how to fix the problem.

Swift Klib gradle plugin GitHub Repo stars

Gradle Plugin to build Swift code as part of your Kotlin Multiplatform project. With this plugin, you can access Swift-only iOS libraries, such as CryptoKit and experiment with Swift to Kotlin interoperability.

parcelize-darwin gradle plugin GitHub Repo stars

Kotlin/Native compiler plugin that generates Parcelable implementations for Darwin (Apple) targets. Allows writing Parcelable classes for all Darwin targets, similary to the Android's kotlin-parcelize plugin. Can be also used together with the kotlin-parcelize plugin to write Parcelable classes in the commonMain source set.

AboutLibraries gradle plugin GitHub Repo stars

Collects all dependencies and licenses of gradle projects (Kotlin Multiplatform) and provides an easy to integrate Attribution / Open Source library UI to integrate in Compose / Android targets.

Power-Assert gradle plugin GitHub Repo stars

The Kotlin Power-assert compiler plugin improves the debugging experience by providing detailed failure messages with contextual information. It simplifies the process of writing tests by automatically generating intermediate values in failure messages. It helps you understand why a test failed without needing complex assertion libraries.

Valkyrie IntelliJ IDEA / Android Studio plugin GitHub Repo stars

Convert SVG/XML icons into Compose ImageVector with convenient code formatting. Plugin provides ability to one-click conversion or icon pack creation with batch export.

Libraries

📋 Log

Napier - logger GitHub Repo stars Maven Central

Napier is a logger library for Kotlin Multiplatform. It supports for the Android, Darwin(iOS, macOS, watchOS, tvOS), JVM, JavaScript. Logs written in common module are displayed on logger viewer of each platform.

Kermit - logger GitHub Repo stars Maven Central

Kermit is a Kotlin Multiplatform logging utility with composable log outputs. The library provides prebuilt loggers for outputting to platform logging tools such as Logcat and NSLog.

KmLogging - logger GitHub Repo stars Maven Central

Kotlin multiplatform logging. High performance, composable and simple to use.

kotlin-logging - logger GitHub Repo stars Maven Central

Lightweight Multiplatform logging framework for Kotlin, written in Pure Kotlin. A convenient and performant logging facade.

🌎 Network

Ktor - http client GitHub Repo stars Maven Central

Ktor includes a multiplatform asynchronous HTTP client, which allows you to make requests and handle responses, extend its functionality with plugins (formerly known as features), such as authentication, JSON serialization, and so on.

Ktorfit - Retrofit for Kotlin Multiplatform on KTS GitHub Repo stars Maven Central

HTTP client / Kotlin Symbol Processor for Kotlin Multiplatform (Android,Js, Jvm , Native, iOS) using KSP and Ktor clients inspired by Retrofit https://foso.github.io/Ktorfit

Apollo GraphQL - GraphQL client GitHub Repo stars Maven Central

A strongly-typed, caching GraphQL client for the JVM, Android, and Kotlin multiplatform.

kgql - GraphQL Document wrapper generator GitHub Repo stars Maven Central

GraphQL Document wrapper generator for Kotlin Multiplatform Project. Currently, available for JVM/Android/iOS

WebRTC KMP - WebRTC client GitHub Repo stars Maven Central

WebRTC Kotlin Multiplatform SDK

Krossbow - WebSocket client GitHub Repo stars Maven Central

A coroutine-based Kotlin multi-platform WebSocket client and STOMP 1.2 client over web sockets.

MOKO SocketIo - Socket.IO implementation GitHub Repo stars Maven Central

This is a Kotlin Multiplatform library that provides real-time, event-based communication for iOS and Android.

rsocket - RSocket Kotlin multi-platform implementation GitHub Repo stars Maven Central

RSocket is a binary protocol for use on byte stream transports such as TCP, WebSockets and Aeron.

📦 Storage

Multiplatform-Settings - Key-Value preferences GitHub Repo stars Maven Central

This is a Kotlin library for Multiplatform apps, so that common code can persist key-value data

KVault - secure key-value storage GitHub Repo stars Maven Central

It acts as an iOS Keychain wrapper and implements encrypted SharedPreferences for Android.

SQLDelight - SQLite database GitHub Repo stars Maven Central

SQLDelight generates typesafe kotlin APIs from your SQL statements. It verifies your schema, statements, and migrations at compile-time and provides IDE features like autocomplete and refactoring which make writing and maintaining SQL simple.

Realm - NoSQL database GitHub Repo stars Maven Central

Realm is a mobile database that runs directly inside phones, tablets or wearables. This repository holds the source code for the Kotlin SDK for Realm, which runs on Kotlin Multiplatform and Android.

Kotbase - NoSQL JSON document database GitHub Repo stars Maven Central

Kotlin Multiplatform library for Couchbase Lite—a lightweight, embedded, NoSQL JSON document database—supporting SQL++, key/value, and full-text search queries; observability; binary attachments; and data sync.

Store 5 - Kotlin Library for Async Data Loading and Caching GitHub Repo stars Maven Central

A Store is responsible for managing a particular data request. When you create an implementation of a Store, you provide it with a Fetcher, a function that defines how data will be fetched over network. You can also define how your Store will cache data in-memory and on-disk.

Flower - Flower simplifies networking and database caching on Android/Multiplatform. GitHub Repo stars Maven Central

Flower is a Kotlin multi-platform library that makes networking and database caching easy. It enables developers to fetch network resources and use them as is OR combine them with local database at single place with fault-tolerant architecture.

cache4k - In-memory Cache GitHub Repo stars Maven Central

Provides a simple in-memory key-value cache for Kotlin Multiplatform, with support for time-based (expiration) and size-based evictions.

SQLiter - SQLite driver GitHub Repo stars Maven Central

SQLiter is a SQLite driver for Kotlin Native, currently Apple and Windows variants. It is designed to serve as a driver to power user-friendly libraries rather than something to use directly. Currently SQLiter powers the SQLDelight library on native clients.

SQLlin - Low-level API for SQLite in Kotlin Multiplatform GitHub Repo stars Maven Central

SQLlin is a Kotlin Multiplatform SQLite library that based on DSL and KSP. You can write SQL statements with your Kotlin code and these can be verified by Kotlin compiler.

KStore - File-based object storage GitHub Repo stars Maven Central

A Kotlin multiplatform library that assists in saving and restoring objects to and from disk

Universal-Cache - Kotlin caching and request sharing GitHub Repo stars Maven Central

Kotlin Flow caching and request sharing. Main idea: don't request data more times than it's needed.

kotlin-cacheable - Annotation-based caching library GitHub Repo stars Maven Central

Kotlin Cacheable is an annotation-based caching library for Kotlin Multiplatform.

📱 Device

MOKO Permissions - System permissions manager GitHub Repo stars Maven Central

Kotlin Multiplatform library for providing runtime permissions on iOS & Android

abc-kmm-notifications - Notification Manager GitHub Repo stars Maven Central

Remote Notification Manager for Kotlin Multiplatform Mobile

abc-kmm-Location - Location manager GitHub Repo stars Maven Central

Location Service Manager for Kotlin Multiplatform Mobile iOS and android

MOKO Geo - Location manager GitHub Repo stars Maven Central

Geolocation access for mobile (android & ios) Kotlin Multiplatform development

MOKO Biometry - System biometry manager GitHub Repo stars Maven Central

This is a Kotlin Multiplatform library that provides authentication by FaceId and TouchId (Fingerprint)

MOKO Media - System media manager GitHub Repo stars Maven Central

This is a Kotlin Multiplatform library that provides media picking in common code (photo/video) and video player controls.

MOKO Maps - Google/Mapbox maps manager GitHub Repo stars Maven Central

This is a Kotlin Multiplatform library that provides controls of maps to common code.

Kable - Coroutines-powered API for interacting with Bluetooth Low Energy devices. GitHub Repo stars Maven Central

Kotlin Asynchronous Bluetooth Low Energy provides a simple Coroutines-powered API for interacting with Bluetooth Low Energy devices.

Blue-Falcon - A Bluetooth kotlin multiplatform library for iOS and Android GitHub Repo stars Maven Central

A Bluetooth "Cross Platform" Kotlin Multiplatform library for iOS, Android, MacOS, Raspberry Pi and Javascript. Bluetooth in general has the same functionality for all platforms, e.g. connect to device, fetch services, fetch characteristics.

Connectivity status - Multiplatform connectivity status GitHub Repo stars Maven Central

This Kotlin multiplatform mobile utility library allows monitoring the internet connection status of the device. You can use it from shared code as well as directly from Android or iOS code.

Kontrol - Debug menu GitHub Repo stars Maven Central

A Kotlin Multiplatform library for creating debug menu.

KMPNotifier - Firebase Push Notification library for iOS and Android GitHub Repo stars Maven Central

Kotlin Multiplatform Push Notification Library using Firebase for iOS and Android.

Compass - 🧭 Location toolkit for geocoding, geolocation, and autocomplete GitHub Repo stars Maven Central

Compass is a Kotlin Multiplatform library location toolkit. It provides a set of tools for working with location data, including geocoding, reverse geocoding, and more.

Connectivity - Retrieve and monitor internet connectivity GitHub Repo stars Maven Central

Connectivity provides network monitoring capabilities for multiplatform projects. It can monitor network connectivity using native APIs on Android and Apple devices, or by making HTTP requests to specified hosts.

💉 Dependency Injection

Koin - DI framework GitHub Repo stars Maven Central

A pragmatic lightweight dependency injection framework for Kotlin developers. Koin is a DSL, a light container and a pragmatic API

Kodein - DI framework GitHub Repo stars Maven Central

Kodein is a very simple and yet very useful dependency retrieval container.

kotlin-inject - DI framework GitHub Repo stars Maven Central

A compile-time dependency injection library for kotlin.

Koject - KSP DI framework GitHub Repo stars Maven Central

Koject is a DI Container Library for Kolin Multiplatform using KSP.

DI.kt - DI for kotlin multiplatform GitHub Repo stars Maven Central

Simple DI with compile-time dependency graph validation for kotlin multiplatform. It uses IR to create method's bodies with dependency injection.

PopKorn - DI framework GitHub Repo stars Maven Central

PopKorn is a simple, powerful and lightweight Kotlin Multiplatform Dependency Injector. It doesn't need any modules or components, just use it without writing a single extra file! It supports AND, IOS, JVM, JS and NATIVE.

🏗 Architecture

Evas - Events and States for Kotlin GitHub Repo stars Maven Central

Evas is a library providing
Events: A performant, scalable and most importantly scoped Event-Channel integrated with coroutines. States: A pragmatic state container.

MVI Kotlin - MVI framework GitHub Repo stars Maven Central

MVIKotlin is a Kotlin Multiplatform framework that provides a way of (not only) writing shared code using MVI pattern. It also includes powerful debug tools like logging and time travel.

Orbit MVI - MVI framework GitHub Repo stars Maven Central

Orbit is a Redux/MVI-like library for KMM, targetting Android and iOS.

FlowMVI - Plugin-based MVI framework GitHub Repo stars Maven Central

FlowMVI is a KMP MVI library based on coroutines with a rich DSL and a powerful plugin system.

KMP-ObservableViewModel - KMP ViewModels GitHub Repo stars Maven Central

A library (previously known as KMM-ViewModel) that allows you to use AndroidX/Kotlin ViewModels with SwiftUI.

VisualFSM - FSM-based MVI framework GitHub Repo stars MavenCentral

VisualFSM is a Kotlin Multiplatform library for implements an FSM-based (Finite-state machine) MVI pattern and a set of tools for visualization and analysis of FSM's diagram of states.

Redux Kotlin - Redux framework GitHub Repo stars Maven Central

Redux implementation for Kotlin (supports multiplatform JVM, native, JS, WASM)

FlowRedux - Statemachine library with nice DSL GitHub Repo stars Maven Central

Building async. running Kotlin Multiplatform state machine made easy with a DSL and coroutines.

Mobius.kt - Mobius Framework GitHub Repo stars Maven Central

Kotlin Multiplatform Mobius implementation.

MOKO MVVM - MVVM framework GitHub Repo stars Maven Central

This is a Kotlin Multiplatform library that provides architecture components of Model-View-ViewModel for UI applications. Components are lifecycle-aware on Android.

Oolong - MVU for Kotlin Multiplatform GitHub Repo stars Maven Central

Oolong is an Elm inspired Model-View-Update (MVU) implementation for Kotlin multiplatform.

Premo — Presentation Model (aka View Model) and Navigation GitHub Repo stars Maven Central

Premo is a Kotlin Multiplatform library that helps to implement the Presentation Layer and share it on iOS, Android, Desktop and Web. Focus on writing logic instead of solving common and boring UI related issues: lifecycle, persistence, navigation, etc.

Decompose - componentization and navigation GitHub Repo stars Maven Central

Decompose is a Kotlin Multiplatform library for breaking down your code into lifecycle-aware business logic components (aka BLoC), with routing functionality and pluggable UI (Jetpack Compose, Android Views, SwiftUI, JS React, etc.)

Decompose-Router - navigation GitHub Repo stars Maven Central

A Compose-multiplatform navigation library that leverage Decompose to create an API inspired by Conductor

Ballast - State Management framework GitHub Repo stars Maven Central

Opinionated Application State Management framework for Kotlin Multiplatform

Essenty/Lifecycle - lifecycle handling in the Kotlin Multiplatform common code GitHub Repo stars Maven Central

Essenty provides the Lifecycle API to help with lifecycle handling in the common code. It is very similar to Android Activity lifecycle.

multiplatform-paging - Pagination library for KMM by Cash App GitHub Repo stars Maven Central

A Kotlin Multiplatform library for pagination with the same API as AndroidX Paging

multiplatform-paging - Pagination library for KMM GitHub Repo stars Maven Central

A Kotlin Multiplatform library for pagination.

lazy-pagination-compose - Pagination library for Compose Multiplatform GitHub Repo stars Maven Central

Intuitive and customizable Compose Multiplatform pagination composables that are built on top of lazy scrollables.

kmp-viewmodel - Kotlin Multiplatform ViewModel GitHub Repo stars Maven Central

A Kotlin Multiplatform library that provides shared MVVM. Supports Android Parcelable, Kotlin Parcelize, AndroidX SavedStateHandle for restoring state after process death.

Meteor - MVI framework with CommonViewModel, CommonStateFlow, UseCase GitHub Repo stars Maven Central

MVI/Redux framework for Kotlin Multiplatform

KStateMachine - Multiplatform state machine library with coroutines support GitHub Repo stars Maven Central

KStateMachine is a Kotlin DSL library for creating state machines and statecharts.

Rinku - Deep Link Handling for Kotlin Multiplatform GitHub Repo stars Maven Central

A Kotlin Multiplatform library for deeplink handling

Resaca - Scope ViewModels to a Composable, surviving config. changes and navigation GitHub Repo stars Maven Central

Scope ViewModels (or plain objects) to a Composable, surviving configuration changes and navigation, to break your app's logic into smaller and reusable components.

🔍 Analytics

MOKO Crash Reporting - reporting to Crashlytics GitHub Repo stars Maven Central

Fatal and Non-Fatal reporting to Crashlytics for Kotlin Multiplatform Mobile

CrashKiOS - Crash reporting for Kotlin/Native iOS applications GitHub Repo stars Maven Central

Thin library that provides symbolicated crash reports for Kotlin code on iOS.

NSExceptionKt - Better crash reports on Apple platforms GitHub Repo stars Maven Central

Unhandled Kotlin exceptions logging for Apple platforms.

trckr - KSP processor GitHub Repo stars Maven Central

KSP processer that simplifies the collection of analytics

🩺 Test

Kotest - test framework GitHub Repo stars Maven Central

Powerful, elegant and flexible test framework for Kotlin with additional assertions, property testing and data driven testing

Turbine - test library GitHub Repo stars Maven Central

A small testing library for kotlinx.coroutines Flow

MockingBird - test framework GitHub Repo stars Maven Central

A Koltin multiplatform library that provides an easier way to mock and write unit tests for a multiplatform project

Mockative - Mocking with KSP GitHub Repo stars Maven Central

Mocking for Kotlin/Native and Kotlin Multiplatform using the Kotlin Symbol Processing API (KSP)

MocKMP - Mocking with KSP GitHub Repo stars Maven Central

A Kotlin/Multiplatform Kotlin Symbol Processor that generates Mocks & Fakes.

Mokkery - Mocking library GitHub Repo stars Maven Central

Mokkery is a mocking library for Kotlin Multiplatform, easy to use, boilerplate-free and compiler plugin driven. Highly inspired by MockK.

KLIP - Snapshot ((c|k)lip) manager for tests. GitHub Repo stars Maven Central

Kotlin Multiplatform snapshot ((c|k)lip) manager for tests. Automatically generates and asserts against a persistent Any::toString() representation of the object until you explicitly trigger an update. Powered by kotlin compiler plugin to inject relevant keys and paths.

Assertk - Fluent assertions library GitHub Repo stars Maven Central

Fluent assertions library for Kotlin with full Multiplatform support.

🔑 Crypto

Cryptography-Kotlin - Type-safe Multiplatform cryptography library for Kotlin GitHub Repo stars Maven Central

The library doesn’t implement any cryptography algorithm on its own, but wraps well-known future-proof solutions like OpenSSL 3.x, WebCrypto or JCA with type-safe multiplatform API providing uniform experience with aligned default behavior, and same expected results using identical parameters while allowing to use platform-specific capabilities.

Libsodium - Libsodium bindings for Kotlin Multiplatform GitHub Repo stars Maven Central

Libsodium bindings project uses libsodium c sources and libsodium.js to provide a kotlin multiplatform wrapper library for libsodium.

korlibs-crypto - Pure Kotlin cryptography library GitHub Repo stars Maven Central

SecureRandom, Hash (MD5/SHA1/SHA256), AES

cryptohash - A set of cryptographic (and not so cryptographic) hashing functions GitHub Repo stars Maven Central

xxHash, Blake, HMAC, Keccak, MD5, SHA, etc

murmurhash - library for hashing using MurmurHash GitHub Repo stars Maven Central

Kotlin Multiplatform (KMP) library for MurmurHash, a non-cryptographic hash function for general hash-based lookup focused on simplicity and performance.

Diglol Crypto - Diglol Crypto for Kotlin Multiplatform. GitHub Repo stars Maven Central

Lots of crypto algorithms for Kotlin Multiplatform.

KotlinCrypto/MACs - Message Authentication Code algorithms for Kotlin Multiplatform GitHub Repo stars Maven Central

Message Authentication Code algorithms for Kotlin Multiplatform: HmacMD5, HmacSHA1, HmacSHA224, HmacSHA256, HmacSHA384, HmacSHA512, HmacSHA512/224, HmacSHA512/256

KotlinCrypto/hash - Cryptographic hash functions for Kotlin Multiplatform GitHub Repo stars Maven Central

Cryptographic hash functions for Kotlin Multiplatform: MD5, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256

KotlinCrypto/secure-random - cryptographically secure random data from system sources GitHub Repo stars Maven Central

Kotlin Multiplatform library for obtaining cryptographically secure random data from the system. Modeled after Java's SecureRandom class, it provides a simple API surface area. Under the hood it utilizes system functions so that SecureRandom is accessible from common code.

📁 File

kotlinx-io - Kotlin multiplatform I/O library Github Repo starts Maven Central

A multiplatform Kotlin library providing basic IO primitives. kotlinx-io is based on Okio but does not preserve backward compatibility with it.

Okio - access, store, and process your data GitHub Repo stars Maven Central

Okio is a library that complements java.io and java.nio to make it much easier to access, store, and process your data.

korlibs - access, store, and process your data GitHub Repo stars

Libraries for Charsets, Encodings, Checksums, Compression, I/O, Streams, Virtual File System, Networking, Http, WebSockets, Serialization…

Suparnatural FS - file system i/o GitHub Repo stars Maven Central

Kotlin multiplatform file system i/o for android, iOS, Java and NodeJS

FileKit - Pick and save Files, Medias and Folder GitHub Repo stars Maven Central

Files, Medias, Folder Picker and File saver library for Kotlin Multiplatform and Compose Multiplatform

🚀 Language extensions

Arrow - Functional companion to Kotlin's Standard Library GitHub Repo stars Maven Central

Arrow aims to provide a lingua franca of interfaces and abstractions across Kotlin libraries. For this, it includes the most popular data types such as Option, Either, Validated etc and functional operators such as traverse and computation blocks to empower users to write pure FP apps and libraries built atop higher order abstractions.

Result - success/failure result GitHub Repo stars Maven Central

This is a tiny framework for modelling success/failure of operations in Kotlin. In short, it is a model in type of Result<V: Any?, E : Throwable>.

ApiResult - Declarative Error Handling GitHub Repo stars Maven Central

ApiResult is a Kotlin Multiplatform declarative error handling framework that is performant, easy to use and feature-rich.

Sandwich - Handling API responses and exceptions in Kotlin for Retrofit, Ktor, Ktorfit GitHub Repo stars Maven Central

Sandwich is an adaptable and lightweight sealed API library designed for handling API responses and exceptions in Kotlin for Retrofit, Ktor, and Kotlin Multiplatform.

🗃 Serializer

kotlinx.serialization - JSON serialization GitHub Repo stars Maven Central

Kotlin serialization consists of a compiler plugin, that generates visitor code for serializable classes, runtime library with core serialization API and support libraries with various serialization formats.

Ksoup - HTML & XML Parser (Jsoup Alternative) GitHub Repo stars Maven Central

Ksoup: A Kotlin Multiplatform port of the renowned Java library, jsoup. Designed to scrape, parse, manipulate, and clean HTML and XML documents with ease and efficiency.

XmlUtil - Component of the XMLUtil library GitHub Repo stars Maven Central

XmlUtil is a set of packages that supports multiplatform XML in Kotlin.

tomlkt - Multiplatform TOML encoder and decoder, powered by kotlinx.serialization GitHub Repo stars Maven Central

Lightweight and easy to use kotlinx.serialization plugin for TOML serialization and deserialization.

Ksoup - Kotlin Multiplatform HTML Parser GitHub Repo stars Maven Central

Ksoup is a lightweight Kotlin Multiplatform library for parsing HTML, extracting HTML tags, attributes, and text, and encoding and decoding HTML entities.

Essenty/Parcelable - @Parcelize annotation for Kotlin Multiplatform GitHub Repo stars Maven Central

Essenty brings both Android Parcelable interface and the @Parcelize annotation from kotlin-parcelize compiler plugin to Kotlin Multiplatform, so they both can be used in common code.

Kotlin Object Notation - Lightweight DSL to build fluid JSON trees GitHub Repo stars Maven Central

Kotlin Object Notation - Lightweight DSL to build fluid JSON trees

MOKO Parcelize - Parcelize in common code GitHub Repo stars Maven Central

This is a Kotlin Multiplatform library that supports Parcelize in common code.

Pbandk - Kotlin code generator and runtime for Protocol Buffers. GitHub Repo stars Maven Central

It has the core set of protobuf features implemented and is being used in production.

⏰ Date-Time

Kotlinx DateTime - Date & Time library GitHub Repo stars Maven Central

A multiplatform Kotlin library for working with date and time.

Island Time - Date & Time library GitHub Repo stars Maven Central

A Kotlin Multiplatform library for working with dates and times, heavily inspired by the java.time library.

Kronos Multiplatform - Network Time Protocol (NTP) client GitHub Repo stars Maven Central

Kotlin Multiplatform library for network time synchronization. Extension for Kotlinx DateTime library.

KCron - Kotlin multiplatform Cron library GitHub Repo stars Maven Central

Kotlin Multiplatform library for build and parsing cron expression. Support custom date time providers. Has default implementation based on Kotlinx DateTime library.

➿ Asynchronous

Kotlinx Coroutines - Kotlin coroutines GitHub Repo stars Maven Central

Library support for Kotlin coroutines

molecule - Build a StateFlow stream using Jetpack Compose GitHub Repo stars Maven Central

Build a StateFlow or Flow stream using Jetpack Compose and NOT Jetpack Compose UI!

Reaktive - Reactive Extensions GitHub Repo stars Maven Central

Kotlin multiplatform implementation of Reactive Extensions.

Kotlinx Atomicfu - atomic operations GitHub Repo stars Maven Central

The idiomatic way to use atomic operations in Kotlin.

Stately - Kotlin Multiplatform State Library GitHub Repo stars Maven Central

Stately is a state utility library to facilitate state management in Kotlin Multiplatform.

CoroutineWorker - Workers for Kotlin Native GitHub Repo stars Maven Central

Kotlin Coroutine-based workers for native

Koru - Coroutine wrappers for Kotlin Native GitHub Repo stars Maven Central

Automatically generates wrappers for suspend functions and Flow for easy access from Swift code in Kotlin Multiplatform projects.

KMP-NativeCoroutines - Swift wrapper for Kotlin Coroutines GitHub Repo stars Maven Central

Library to use Kotlin Coroutines from Swift code in KMP apps

FlowExt - Kotlinx Coroutines Flow Extensions GitHub Repo stars Maven Central

A Kotlin Multiplatform library, that provides many operators and extensions to Kotlin Coroutines Flow.

Human-Readable - A small set of data formatting utilities. GitHub Repo stars Maven Central

Works with kotlinx-datetime and offers features like relative time ("2 hours ago"), durations and file sizes.

🍎 Compose UI

Appyx Navigation, transition animations, gestures, UI components. GitHub Repo stars Maven Central

Model-driven navigation + UI components with gesture control for Compose Multiplatform

Voyager Compose Multiplatform Navigation. GitHub Repo stars Maven Central

A multiplatform navigation library built for, and seamlessly integrated with, Jetpack Compose.

Calf Compose Adaptive Look & Feel GitHub Repo stars Maven Central

Calf is a library that allows you to easily create adaptive UIs for your Compose Multiplatform apps.

Compose DND Compose Drag And Drop GitHub Repo stars Maven Central

Compose DND is a library that allows you to easily add drag and drop functionality to your Jetpack Compose and Compose Multiplatform projects.

Window Size Class Window Size Class GitHub Repo stars Maven Central

Compose Multiplatform: Material 3 Window Size Class

Compose-Imageloader Compose Image library for Kotlin Multiplatform. GitHub Repo stars Maven Central

Compose Image library for Kotlin Multiplatform.

Kamel Compose Multiplatform image loading. GitHub Repo stars Maven Central

An asynchronous media loading library for Compose Multiplatform.

Sketch Image loader for Compose Multiplatform GitHub Repo stars Maven Central

Sketch is an image loading library designed for Compose Multiplatform. It is powerful and rich in functions. In addition to basic functions, it also supports GIF, SVG, video thumbnails, Exif Orientation, etc.

Compose Icons Open Source icon packs for Compose Multiplatform. GitHub Repo stars Maven Central

Compose Multiplatform icons is a pack of libraries that provide well known Icon Packs. The library usage is inspired by Compose Material Icons.

Compose Rich Editor Provides Rich Editor component for Compose Multiplatform. GitHub Repo stars Maven Central

A Rich text editor library for both Jetpack Compose and Compose Multiplatform, fully customizable and supports the common rich text editor features.

Material Theme Preferences Switching Dark/Light Material themes. GitHub Repo stars Maven Central

Kotlin Multiplatform library for easy switching Dark/Light Material themes on Compose.

Drag Select Compose Google Photos style drag-to-select multi-selection. GitHub Repo stars Maven Central

Compose Multiplatform library that allows you to easily implement a "Google Photos"-style multi-selection in your Compose apps.

MaterialKolor Generate Material3 color schemes from a seed color. GitHub Repo stars Maven Central

Compose multiplatform library for generating dynamic Material3 color schemes from a seed color.

Compose-placeholder Modifier for displaying 'placeholder' UI while content is loading. GitHub Repo stars Maven Central

Compose multiplatform library which provides a modifier for displaying 'placeholder' UI while content is loading.

kmPalette A port of Androidx Palette, generate palettes from image. GitHub Repo stars Maven Central

A Compose Multiplatform library for generating color palettes from images, including the dominant color.

Reveal Reveal effect for Compose Multiplatform GitHub Repo stars Maven Central

A reveal effect (coach mark, tutorial, onboarding) for Compose Multiplatform (Android, iOS, desktop, Web)

KMP-ComposeUIViewController KMP-ComposeUIViewController. GitHub Repo stars Maven Central

KSP library for generating ComposeUIViewController and UIViewControllerRepresentable files when using Compose Multiplatform for iOS.

KodeView KodeView GitHub Repo stars Maven Central

Kotlin Multiplatform syntax highlighting views.

QRose - Multiplatform QR code generator GitHub Repo stars Maven Central

Styled QR code generation library for Compose Multiplatform.

rebugger - A recomposition debugger GitHub Repo stars jitpack.io

A simple Compose library to print the reason for recomposition in your Logcat window.

Compose WebView Multiplatform WebView for Compose Multiplatform GitHub Repo stars Maven Central

A WebView library that offers essential WebView features for Compose Multiplatform. It supports loading URLs and HTML data, evaluating JavaScript, and managing cookies. Currently, it is available for Android, iOS, and Desktop platforms.

ZoomImage Library for zoom images GitHub Repo stars Maven Central

Library for zoom images, supported Android View, Compose and Compose Multiplatform; supported double-click zoom, One or two fingers gesture zoom, single-finger drag, inertial sliding, positioning, rotation, super-large image subsampling and other functions.

peekaboo - Image Picker Library for Compose Multiplatform GitHub Repo stars Maven Central

Kotlin Multiplatform library for Compose Multiplatform, designed for seamless integration of an image picker feature in iOS and Android applications.

FlexibleBottomSheet - Flexible BottomSheet library Compose Multiplatform GitHub Repo stars Maven Central

Advanced Compose Multiplatform bottom sheet for segmented sizing and non-modal type, similar to Google Maps.

orbitral - Dynamic animation library for Compose Multiplatform GitHub Repo stars Maven Central

Jetpack Compose animation library that allows you to implement animations such as shared element transition.

compose-stable-marker - Compose stable markers for KMP to tell stable/immutable guarantees GitHub Repo stars Maven Central

Compose stable markers were originated Compose runtime, which improves Compose performance by telling stable and skippable guarantees to the compose compiler from non-compose dependent modules.

Wavy slider A dancing slider/progress bar. GitHub Repo stars Maven Central

Inpired by Android 13 squiggly progress bar. Also, a demo for how to create a multiplatform Composable.

Koala Plot - A charting and plotting library for Compose Multiplatform. GitHub Repo stars Maven Central

Build great-looking interactive plots for Android, Desktop, iOS, and Web using a single API and common code base. Supports over 7 graph types.

Precompose Compose Multiplatform Navigation. GitHub Repo stars Maven Central

Compose Multiplatform Navigation && ViewModel library, inspired by Jetpack Navigation, ViewModel and Lifecycle.

Compose Action Menu An easy-to-use action/overflow menu for Compose UI. GitHub Repo stars Maven Central

KMPAuth Compose Multiplatform Authentication Library. GitHub Repo stars Maven Central

Compose Multiplatform Authentication Library targetting android and iOS.

Kottie Compose Multiplatform Animation library. GitHub Repo stars Maven Central

Compose Multiplatform animation library that parses Adobe After Effects animations. Inspired by Airbnb/Lottie.

Compose Cupertino - Compose Multiplatform UI components for iOS. GitHub Repo stars Maven Central

Compose Cupertino is a Kotlin Multiplatform library for the Compose Multiplatform UI framework. It provides various UI components and adaptive wrappers for making native-looking iOS applications.

ConstraintLayout Compose Multiplatform - ConstraintLayout Compose for Multiplatform. GitHub Repo stars Maven Central

Useful when implementing larger layouts with more complicated alignment requirements.

Compose Settings - Compose Settings. GitHub Repo stars Maven Central

Compose Multiplatform #Compose Settings library.

material-motion-compose - Material Motion for Compose Multiplatform GitHub Repo stars Maven Central

A library for implementing motion system in Material Components for Compose Multiplatform.

Tiamat - Compose Multiplatform navigation library. GitHub Repo stars Maven Central

Key features: code generation free, pure Compose, nested navigation support, back-stack alteration (+deep-links), pass ANY types between screens as data, even lambdas, customizable transitions.

Landscapist: Compose image loading library for Kotlin Multiplatform. GitHub Repo stars Maven Central

A pluggable, highly optimized Jetpack Compose and Kotlin Multiplatform image loading library that fetches and displays network images with Glide, Coil, and Fresco.

colorpicker-compose: Color Picker library for Kotlin Multiplatform. GitHub Repo stars Maven Central

Kotlin Multiplatform color picker library for getting colors from any images by tapping on the desired color.

🎨 Graphics

MOKO Graphics - Graphics primitives GitHub Repo stars Maven Central

This is a Kotlin Multiplatform library that provides graphics primitives to common code.

Korim - Imaging utilities GitHub Repo stars Maven Central

Kotlin cORoutines IMaging, Bitmap and Vector graphics for Multiplatform Kotlin

🧩 Service SDK

Firebase Kotlin SDK - A Kotlin-first SDK for Firebase GitHub Repo stars Maven Central

The Firebase Kotlin SDK is a Kotlin-first SDK for Firebase. It's API is similar to the Firebase Android SDK Kotlin Extensions but also supports multiplatform projects, enabling you to use Firebase directly from your common source targeting iOS, Android or JS.

supabase-kt - KMP Client for Supabase GitHub Repo stars Maven Central

Supabase is an open source Firebase alternative. Database, Auth, Storage, Edge Functions, Realtime, AI & Vectors

openai-kotlin - OpenAI SDK GitHub Repo stars Maven Central

Kotlin client for OpenAI's API with multiplatform and coroutines capabilities.

Sentry SDK - Sentry Kotlin Multiplatform SDK GitHub Repo stars Maven Central

This project is an experimental SDK for Kotlin Multiplatform. This SDK is a wrapper around different platforms such as JVM, Android, iOS, macOS, watchOS, tvOS that can be used on Kotlin Multiplatform.

bitcoin-kmp - Kotlin Multiplatform Bitcoin Library GitHub Repo stars Maven Central

This is a simple Kotlin Multiplatform library which implements most of the bitcoin protocol

MOKO Tensorflow - Mobile Kotlin TensorFlow GitHub Repo stars Maven Central

This is a Kotlin MultiPlatform library that provides access to TensorFlow-Lite functionality from common source set.

qBittorrent - wrapper for the qBittorrent Web API GitHub Repo stars Maven Central

Multiplatform Kotlin wrapper for the qBittorrent Web API using Ktor.

Cognito-idp - AWS Cognito Identity Provider GitHub Repo stars Maven Central

Lightweight AWS Cognito Identity Provider client for Kotlin Multiplatform and Typescript projects.

TMDb API - access to TMDb API GitHub Repo stars Maven Central

This library gives access to TMDb API version 3 and 4 for mobile, desktop, and web applications. It supports Swift, Kotlin, and JavaScript by setting up as a Kotlin Multiplatform project.

Growth Book SDK - GrowthBook Kotlin SDK GitHub Repo stars Maven Central

GrowthBook is an open-source platform for feature flagging and a/b testing built for data teams, engineers, and product managers. It's great whether you're looking to just analyze experiment results or looking to make it easier to deploy code.

ConfigCat - Kotlin Multiplatform SDK for ConfigCat GitHub Repo stars Maven Central

Kotlin Multiplatform SDK for ConfigCat, a feature flag, feature toggle, and configuration management service. That lets you launch new features and change your software configuration remotely without actually (re)deploying code. ConfigCat even helps you do controlled roll-outs like canary releases and blue-green deployments.

🧮 Arithmetic

KBigNum - Big Numbers GitHub Repo stars Maven Central

Library for Big Numbers

BigNum - Big Numbers GitHub Repo stars Maven Central

Kotlin Multiplatform BigNum library is a pure kotlin implementation of arbitrary precision arithmetic operations. It follows the same approach as Kotlin does on JVM to keep the interface familiar.

🛢 Resources

Libres - Resources manager. GitHub Repo stars Maven Central

String/Image resources generation in Kotlin Multiplatform.

MOKO Resources - System resources manager GitHub Repo stars Maven Central

This is a Kotlin Multiplatform library that provides access to the resources on iOS & Android with the support of the default system localization.

Kotlinx-Resources - text resources manager GitHub Repo stars Maven Central

Kotlin Multiplatform (KMP) plugin and library that add support for reading resources in tests.
The plugin and a library work in tandem to provide a unified API across platforms for reading resources from each source set's resources folder.

🔧 Utils

UUID - UUID generator GitHub Repo stars Maven Central

Kotlin Multiplatform UUID generator

Uri KMP - A library for working with URIs in Kotlin Multiplatform GitHub Repo stars Maven Central

A library for working with URIs in Kotlin Multiplatform

Diglol Encoding - Common encodings for Kotlin Multiplatform. GitHub Repo stars Maven Central

Diglol Encoding provides Hex/Base16, Base32, Base64 encodings for Kotlin Multiplatform.

Diglol Id - A global Id generator for Kotlin Multiplatform. GitHub Repo stars Maven Central

A global Id generator for Kotlin Multiplatform. It modifies the timestamp to 5 bytes based on Xid.

ByteBuffer - Kotlin Multiplatform bytebuffer/byte[] wrapper GitHub Repo stars Maven Central

A kotlin multiplatform library that allows you to allocate and modify byte[] natively using an API similar to Java's ByteBuffer API.

zipline - Run Kotlin/JS libraries in Kotlin/JVM and Kotlin/Native programs GitHub Repo stars Maven Central

Zipline works by embedding the QuickJS JavaScript engine in your Kotlin/JVM or Kotlin/Native program. It's a small and fast JavaScript engine that's well-suited to embedding in applications.

Kase64 - Base64 encoder/decoder GitHub Repo stars Maven Central

Base64 encoder/decoder for Kotlin/Multiplatform. Supports Android, iOS, JavaScript and plain JVM environments.

Colormath - Multiplatform Kotlin color conversion and manipulation GitHub Repo stars Maven Central

Colormath is a Kotlin Multiplatform library for color manipulation and conversion.

GEOK - Kotlin geometry library GitHub Repo stars Maven Central

Small geometry library for Java and Kotlin. Contains useful basic utilities that require on most application.

fluid-currency - currency library GitHub Repo stars Maven Central

Kotlin multiplatform currency library.

fluid-country - country library GitHub Repo stars Maven Central

Kotlin multiplatform country library.

Kmem - Data primitives GitHub Repo stars Maven Central

Kmem is bit, array and fast memory utilities library for multiplatform Kotlin

KaseChange - convert strings between various case formats GitHub Repo stars Maven Central

Multiplatform Kotlin library to convert strings between various case formats including Camel Case, Snake Case, Pascal Case and Kebab Case

FuzzyWuzzy-Kotlin - Fuzzy string matching for Kotlin GitHub Repo stars Maven Central

Useful for selecting the closest matching string from a collection of strings. Various algorithms are available.

kotlin-semver - Semantic versioning GitHub Repo stars Maven Central

Semantic Versioning library for Kotlin Multiplatform.

Kontrol - Debug menu GitHub Repo stars Maven Central

Kotlin Multiplatform library for creating a debugging menu.

Korau - Kotlin cORoutines AUdio GitHub Repo stars Maven Central

Pure Kotlin WAV, MP3 and OGG vorbis decoders

Kim - Kotlin Image Metadata GitHub Repo stars Maven Central

Kotlin Multiplatform library for reading and writing image metadata

XMP Core for Kotlin Multiplatform - Kotlin Multiplatform port of Adobe's XMP SDK GitHub Repo stars Maven Central

Kotlin Multiplatform library for reading and writing XMP (Extensible Metadata Platform) files

Highlights - Kotlin Multiplatform syntax highlighting engine GitHub Repo stars Maven Central

Kotlin Multiplatform library for analyzing and coloring syntax of code string

BlahBlah - Blah-Blah generates fake data for robust testing and development GitHub Repo stars Maven Central

Blah-Blah generates fake data for robust testing and development

KMPUtils - Kotlin STL Extensions & Utils GitHub Repo stars Maven Central

KMPUtils is a collection of everything missing from the Kotlin Multiplatform Standard Library.

RSSParser - A Kotlin Multiplatform library to parse a RSS Feed GitHub Repo stars Maven Central

RSS Parser is a Kotlin Multiplatform library for parsing RSS and Atom feeds. It supports Android, iOS, and the JVM.

Contribution guide

Feel free to contribute. Follow common style and welcome!
Few rules:

  1. every suggesion should contain link to any project uses the library (not an author's sample)
  2. the library is supposed to support Android + iOS targets
  3. the library must be published to the MavenCentral
  4. the library should be a popular (github stars ~ 50, at least)

License

MIT License

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.