Top Kotlin Multiplatform Libraries for iOS and Android App Development

Published December 11, 2024

Here are some popular Kotlin Multiplatform (KMP) libraries to enhance your cross-platform development

  • Elevate your KMP projects with a curated selection of powerful libraries.
  • Discover how to streamline your development workflow and enhance code quality.
  • Unveil the secrets to building exceptional cross-platform apps with KMP

Kotlin Multiplatform Libraries

Libraries

Network

Http

  • Ktor - Framework for quickly creating connected applications in Kotlin with minimal effort

  • ktor-client-oauth-feature - Ktor Client Feature for handling OAuth token refreshes

  • kmp-tor - Embed Tor into your application.

  • Ktorfit - HTTP client / Kotlin Symbol Processor for Kotlin Multiplatform (Js, Jvm, Android, Native, iOS) using KSP and Ktor clients inspired by Retrofit

  • fuel - The easiest HTTP networking library for Kotlin backed by Kotlinx Coroutines.

GraphQL

  • apollo - Multiplatform official GraphQL client.

  • suparnatural-graphql - Strict type safe GraphQL client with support for composable links.

  • kgql - GraphQL Document wrapper generator for Kotlin Multiplatform Project and Android

Real-time communication

JSON-RPC

  • apollo -JSON-RPC Kotlin Multiplatform client.

Stomp

  • krossbow - A Kotlin multiplatform coroutine-based STOMP client over websockets

Utility

  • Connectivity status - Monitor the internet connection status of your device on Android and iOS.

Authentication

  • cognito-idp - Lightweight AWS Cognito Identity Provider client for Kotlin Multiplatform projects.

Repository

  • Store - A Kotlin Multiplatform library for building network-resilient applications.

Serializer

  • kotlinx.serialization (official) - Kotlin multiplatform / multi-format serialization

  • YAKL - A YAML 1.2 processor

  • KoAP - CoAP encoder/decoder with support for UDP (RFC 7252), TCP (RFC 8323) and Observe (RFC 7641).

  • Pbandk - Kotlin code generator and runtime for Protocol Buffers

  • Kase64 - Base64 encoder/decoder for Kotlin/Multiplatform. Supports standard and URL-safe encodings.

  • Kex - Hex string encoder/decoder for Kotlin/Multiplatform.

  • Ktoml - MPP serialization library (decoder/encoder) for TOML format.

  • encoding - Rfc 4648 Section 4-8 compliant encoding (Base 16, 32 Crockford, 32 Default, 32 Hex, 64 Default, 64 Url Safe).

  • parcelize - Implement Android Parcelable from common code.

Storage

RDB

  • SQLDelight - Generates typesafe Kotlin APIs from SQL.

  • SQLiter - Minimal multiplatform sqlite library

  • Door - Room for Kotlin Multiplatform.

NoSQL

  • Realm - Kotlin Multiplatform and Android SDK for the Realm Mobile Database: Build Better Apps Faster.

  • Kodein-DB - Embedded NoSQL database

KVS

  • multiplatform-settings - A Kotlin Multiplatform library for saving simple key-value data.

  • KVault - Secure key-value storage for Kotlin Multiplatform projects.

  • Kissme - Kissme: Kotlin Secure Storage Multiplatform

  • Multiplatform-Preferences - Kotlin Multi Platform Preferences, for android an ios : SharedPreferences & NSUserDefault.

  • kds - Multiplatform coroutine-based kotlin library for saving Serializables with kotlinx.serialization and delegates.

  • Kottage - Kotlin Multiplatform Key-Value Store Local Cache Storage for Single Source of Truth.

FILE

  • okio - A modern I/O library for Android, Java, and Kotlin Multiplatform.

  • suparnatural-fs - Kotlin Multi Platform File System access library for iOS and Android.

  • suparnatural-cache - A superfast, thread safe in-memory cache with configurable hashing schemes backed by persistent stores with blocking/non-blocking I/O.

  • KStore - A tiny Kotlin multiplatform library that assists in saving and restoring objects to and from disk using kotlinx.coroutines, kotlinx.serialisation and okio.

File System

  • Kfswatch - Kotlin Multiplatform File System Watcher

DI

  • Kodein-DI - Painless Kotlin Dependency Injection

  • Koin - A pragmatic lightweight dependency injection framework for Kotlin

  • PopKorn - Forget about modules and components. DI can be simple.

  • kotlin-inject - Dependency injection lib for kotlin.

  • Koject - DI Container library for Kotlin Multiplatform.

Image

  • korim - Kotlin cORoutines IMaging, Bitmap and Vector graphics for Multiplatform Kotlin

Audio

  • korau - Pure Kotlin WAV, MP3 and OGG vorbis decoders

Bluetooth

  • Blue-Falcon - A Bluetooth kotlin multiplatform "Cross-Platform" library for iOS and Android

  • Kable - Simple Coroutines-powered API for interacting with Bluetooth Low Energy devices.

Reactive

Rx

  • Reaktive - Kotlin multi-platform implementation of Reactive Extensions

  • RxCommon - Multiplatform implementation of ReactiveX providing a common way to build one set of business logic for native, iOS, Javascript, Android, JVM, and other platforms

LiveData(Android)

Utility

Asynchronous

  • coroutine (official) - Support for Kotlin coroutine.

  • suparnatural-concurrency - Unified APIs such as Workers, Schedulers for cross-platform multithreading on iOS and Android.

  • Koru - Coroutine wrappers for Kotlin Native generated from annotations.

  • KMP-NativeCoroutines - Library to use Kotlin Coroutines from Swift code in KMP apps.

  • FlowExt - Kotlinx Coroutines Flow Extensions. Extensions to the Kotlin Flow library.

Date, Time

  • kotlinx-datetime - Official date and time library

  • klock - Multiplatform Date and time library for Kotlin

  • island-time - A Kotlin Multiplatform library for working with dates and times

  • time - Type-safe time calculations in Kotlin, on any platform

  • time - Type-safe time periods for the Kotlinx-datetime multiplatform date/time library

  • fluid-time - Kotlin multiplatform date & time library

  • kcron - Kotlin multiplatform Cron library

Semantic Versioning

  • SemVer-KMP - A Kotlin library for Semantic Versioning with ranges and other features.

  • kotlin-semver - Semantic Versioning library for Kotlin Multiplatform.

EventBus

  • Multiplatform-Bus - Kotlin event-bus compatible with Android & native iOS.

  • Event4k - MultiPlatform Kotlin EventBus library - simple, bidirectional, concurrent.

Number

Hashing

  • kotlinx-murmurhash - Multiplatform library for MurmurHash, a non-cryptographic hash function for general hash-based lookup focused on simplicity and performance.
    ![badge][badge-macos]

Cipher

  • krypt - Cryptography library. Support for SecureRandom, Hash(MD5/SHA1/SHA256), AES.

  • kotlin-multiplatform-libsodium - A Kotlin Multiplatform wrapper for Libsodium cryptography library.

String Utils

  • FuzzyWuzzy-Kotlin - Fuzzy string matching on collections. Port of python & java library.

 

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

  • kotlin-multiplatform-diff - Multiplatform Kotlin library for calculating text differences.

  • doistx-normalize -- Kotlin Multiplatform library for string unicode normalization (UAX #15)

Input/Output

  • keyboard-mouse-kt - Multiplatform Kotlin library for interacting with global keyboard and mouse events and states.

Analytics

Atomic

  • AtomicFu - The idiomatic way to use atomic operations in Kotlin

UUID

  • uuid - Kotlin Multiplatform UUID

Paging

Kotlin/Native

  • Stately - The library is set of multithreaded collection classes that will allow multithreaded mutation in Kotlin/Native.

  • coroutineworker - Kotlin Coroutine-based workers for native

Units

  • Measured - Intuitive, type-safe units of measure.

Monads

  • Kotlin utilities - Scala utility types: Option, Either, Try for Kotlin Multiplatform.

  • kotlin-result - A multiplatform Result monad for modelling success or failure operations.

  • Résultat - A fork of Kotlin Result with a loading state.

  • value-clazz - Functionally equivalent to a Kotlin value class that implements an interface, but inheritance based and compiles to platform code.

Debug

Logging

  • Napier - Logging library for Kotlin Multiplatform.

  • KmLogging - High performance, composable multiplatform logging.

  • klogger - Logging library for Kotlin Multiplatform.

  • Multiplatform-Log - Logging library for Kotlin Multiplatform.

  • Kermit - Kotlin Multiplatform logging utility with composable log outputs and prebuilt loggers.

  • Log4k - Logging library for Kotlin Multiplatform.

  • Cabret-Log - Method call logging for Kotlin Multiplatform

  • KmmAnkoLogger - fork of the AnkoLogger for use it with Kotlin Multiplatform Mobile

Test

  • Atrium - A multiplatform assertion library for Kotlin.

  • konform - Portable validations.

  • kotest-assertions - Multiplatform assertions and test utilities.

  • kotest-framework - Multiplatform test framework for Kotlin.

  • mockk - Mocking library for test.

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

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

  • kotlinx-resources - Multiplatform library for reading resources in tests.

Annotation Processor

  • MpApt - Kotlin Native/JS/JVM Annotation Processor library

  • kotlin-native-suspend-function-callback - Kotlin Multiplatform compiler plugin to generate a callback implementation for suspended functions so they are visible from Kotlin Native

GUI

  • moko-widgets - Declarative UI and screens management in common code for mobile (android & ios) Kotlin Multiplatform development

  • kgl - This library provides a thin OOP wrapper with DSLs to make programming with vulkan easier.

  • kotlin-libui - Kotlin/Native interop to libui: a portable GUI library

  • kotlin-material-ui - Kotlin Wrapper Library of Material-UI

  • muirwik - Kotlin Wrapper Library of Material-UI

  • compose-macos-theme - Multiplatform MacOS theme written in Compose UI

  • componentbox - A Kotlin multiplatform library for building dynamic server-driven UI

  • kontrol - A Kotlin Multiplatform library for creating a debugging menu

Command Line Interface

  • Clikt - Multiplatform command line interface parsing for Kotlin

  • Command_Parser - Multiplatform command parser using kotlinx.coroutines

  • Mordant - Multiplatform text styling for Kotlin command-line applications

Firebase

  • Firebase Kotlin SDK - Firebase SDK for Kotlin Multiplatform projects (Firebase Authentication, Realtime Database, Cloud Firestore, Cloud Functions, Cloud Messaging and Cloud Storage).

Architecture

  • kompass - Kotlin Multiplatform Router for Android and iOS

  • Decompose - Kotlin Multiplatform lifecycle-aware business logic components (aka BLoCs) with routing functionality and pluggable UI (Jetpack Compose, SwiftUI, JS React, etc.), inspired by Badoos RIBs fork of the Uber RIBs framework.

  • oolong - MVU for Kotlin Multiplatform

  • moko-mvvm - MVVM architecture components for mobile multiplatform with LiveData (iOS and Android)

  • MVIKotlin - MVI framework for Kotlin Multiplatform.

  • Orbit MVI - MVI framework for Kotlin Multiplatform.

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

  • ReKamp - Port of ReKotlin to Kotlin Multiplatform, which corresponds to ReKotlin/1.0.4.

  • Kaskade - Simplifying UI state management in Kotlin Multiplatform.

  • Flywheel - A simple and predictable state management library inspired by Redux and a few more. Fully built on top of coroutines using the concept of actors.

  • KStateMachine - KStateMachine is a Kotlin DSL library for creating state machines and hierarchical state machines (statecharts).

  • Premo — Presentation Model (aka View Model) and Navigation. Focus on writing logic instead of solving common and boring UI related issues: lifecycle, persistence, navigation, etc.

  • multiplatform-viewmodel — Shared ViewModel in Kotlin Multiplatform

  • Direkt - Kotlin Multiplatform Router for Android, iOS, Js

  • compose_bloc - State Management and Navigation Library for Jetpack Compose and Compose Multiplatform.

  • Ballast - Opinionated Application State Management framework for Kotlin Multiplatform

  • Kotlin Bloc - A simple, predictable and composable UI framework for Kotlin Multiplatform

  • kmp-viewmodel - Shared ViewModel in Kotlin Multiplatform - A Kotlin Multiplatform library that provides shared MVVM for UI applications. Components are lifecycle-aware on Android.

Project templates

  • moko-template - Template project of a Mobile (Android & iOS) Kotlin MultiPlatform project with the MOKO libraries and modularized architecture

  • KMMT - KMMT is a Multi-Module KMM based project template designed to simplify the KMM development. It uses a simplified approach that can be shared both in android and iOS easily. This template include network module, persistence module, resource module, analytics module ( with ios native library integration), domain module, presenter module etc.

Docs

Build & Development Tools

Artificial Intelligence

Symbolic AI

  • 2P-Kt - A Kotlin-based, multi-platform, open ecosystem for symbolic artificial intelligence (AI) and logic programming (LP), currently supporting many facilities for LP and a full-fledged, extensible, ISO-standard Prolog solver.

Social

tgbotapi

  • tgbotapi - Strongly-typed API wrapper for Telegram Bot API with fully covered API and a lot of additional DSLs on top of base API.

Math

Article Contributed By :
https://www.rrtutors.com/site_assets/profile/assets/img/avataaars.svg

107 Views