explaingit

terrakok/kmp-awesome

5,743Audience · developerComplexity · 1/5Setup · easy

TLDR

A curated directory of Kotlin Multiplatform libraries and tools organized by category, focused on libraries that work on both Android and iOS.

Mindmap

mindmap
  root((kmp-awesome))
    What it is
      Curated library list
      KMP ecosystem map
      iOS and Android focus
    Categories
      Networking HTTP BLE
      Storage SQLite cache
      Device permissions geo
      UI Compose graphics
    Tooling
      Gradle plugins
      Swift interop
      Documentation
    Audience
      Android developers
      KMP adopters
      Cross-platform teams
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Find a networking library that works on both Android and iOS for a Kotlin Multiplatform project.

USE CASE 2

Discover database or storage options (SQLite, key-value, NoSQL) that support KMP targets.

USE CASE 3

Look up Gradle tooling plugins for Swift interop, icon generation, or build configuration in KMP.

USE CASE 4

Evaluate whether Kotlin Multiplatform has enough library support to replace separate Android and iOS codebases.

Tech stack

KotlinKotlin MultiplatformAndroidiOSCompose MultiplatformGradle

Getting it running

Difficulty · easy Time to first run · 5min
The README does not mention a license for this list.

In plain English

kmp-awesome is a curated list of libraries and tools for Kotlin Multiplatform, a technology from JetBrains that lets developers write shared Kotlin code and deploy it to Android, iOS, desktop, and web from a single codebase. The list is organized by category and focuses on libraries that support both iOS and Android targets. Kotlin Multiplatform (often abbreviated KMP) addresses a common frustration in mobile development: writing the same logic twice, once for Android in Kotlin and again for iOS in Swift. With KMP, you write the business logic once in Kotlin, then call it from native Android and iOS code. The shared code can handle networking, storage, state management, and more, while each platform keeps its native UI. The list is organized into categories covering the main needs of a cross-platform project. Tooling includes Gradle plugins for configuration generation, Swift interop, documentation, and icon conversion. Network libraries include HTTP clients, GraphQL clients, WebSocket implementations, and Bluetooth. Storage options range from simple key-value preferences to SQLite wrappers, NoSQL document databases, and encrypted vaults. Device categories cover system permissions, geolocation, biometric authentication, media picking, and push notifications. There are also sections for architecture patterns, dependency injection, serialization, date and time utilities, asynchronous programming, UI components via Compose Multiplatform, graphics, cryptography, and math. Each entry links to the library on GitHub and shows its Maven Central version badge, so you can check whether a library is actively maintained before adding it to your project. This list is a reference for Android developers who are adopting Kotlin Multiplatform and need to find libraries that actually support the iOS target, not just Android or JVM. It is also useful for teams evaluating whether KMP has enough ecosystem support to replace separate Android and iOS codebases. The README does not include a license statement for the list itself.

Copy-paste prompts

Prompt 1
I'm building a Kotlin Multiplatform app that needs to make HTTP requests on both Android and iOS. Based on the kmp-awesome list, which network library should I use and how do I add it to my build.gradle.kts?
Prompt 2
I need encrypted key-value storage in my KMP project that works on both Android (SharedPreferences) and iOS (Keychain). Show me how to add and use KVault from kmp-awesome.
Prompt 3
My KMP project needs to request location permissions on both Android and iOS. Show me how to integrate MOKO Geo from the kmp-awesome list.
Prompt 4
I want to add SQLite to my Kotlin Multiplatform project. Compare SQLDelight and SQLlin from kmp-awesome and show me which to choose for a simple notes app.
Open on GitHub → Explain another repo

← terrakok on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.