Open-source project
touchlab/KaMPKit avatar
touchlab/KaMPKit

KaMP Kit: Touchlab's Kotlin Multiplatform Starter App and What It Actually Ships

KaMP Kit by Touchlab. A collection of code & tools designed to get your mobile team started quickly w/Kotlin Multiplatform

2,455 stars211 forksKotlinApache-2.0

At a glance

What is it?
KaMP Kit is a native mobile sample app with a shared Kotlin module, built to get Android and iOS developers past the initial KMP setup. It is a reference architecture, not a framework, and the README says so plainly.
Who is it for?
Adopt KaMP Kit if you are a native Android or iOS developer who wants a working KMP sample to evaluate the platform, and if you accept that the repository is a best-practice model rather than a supported product. Do not adopt it if you need comprehensive guides, advanced tutorials, or help with anything outside the starter app, because the README explicitly excludes that scope.
Can I use it commercially?
Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 5 days ago.
What is it written in?
Mainly Kotlin, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 2, 2026, and from our analysis. They are not legal advice.

Editorial analysis

The problem KaMP Kit was built to solve

Touchlab's own framing is that the KMP ecosystem has produced a lot of old or conflicting documentation, blog posts and tutorials. In the README they state that after talking to several teams looking at KMP, the primary stumbling block is simply getting started. KaMP Kit is aimed at that one problem: set up your environment, clone the repo, and have a running sample app quickly.

The audience is narrow on purpose. Touchlab says it focuses on KMP for native mobile development, so the kit targets native mobile developers on Android or iOS, plus engineering managers for those teams. The README assumes little to no KMP experience. If you already ship KMP, the setup material will not teach you much, though the architecture choices may still be worth reading.

The project changed direction over time. It started in early 2020 as a minimal sample, and the README now says the intent is less "getting started" and more "best practice model". That shift matters when you evaluate it: you are looking at Touchlab's opinionated choices for architecture and libraries, not a neutral template.

What the starter app actually contains

The repository is a Gradle project with an Android app module, an iOS project, and a shared Kotlin module. The top level holds app/, ios/, shared/, the Gradle wrapper scripts, settings.gradle.kts and build.gradle.kts, plus a docs/ directory. That layout is the whole story of the architecture: native UI on each platform, with a common module in the middle.

The starter app ships a small functional feature set that Touchlab describes as a reference for adding your own features. The docs directory carries the substance: GENERAL_ARCHITECTURE.md for the code walkthrough, APP_BUILD.md for build instructions, DETAILED_DEV_SETUP.md aimed at iOS developers, and DEBUGGING_KOTLIN_IN_XCODE.md for debugging Kotlin from Xcode.

The 2023 update is the most concrete architectural change documented. Touchlab adopted SKIE, its own tool, which the README says removed a lot of boilerplate related to ViewModel sharing and made it possible to use Kotlin sealed classes as Swift enums in iOS code. There is a linked migration case study for teams that want the reasoning behind that change. If you are evaluating how Kotlin types cross the language boundary into Swift, that is the part of the kit to read first.

Installing KaMP Kit and running the sample

The README lists the prerequisites before any commands. You need JVM 17, the Android SDK with the latest stable Android Studio (2023.3+) or IntelliJ (2024.1+), and a Mac with Xcode 15+ for the iOS build. The iOS requirement is a hard constraint: without a Mac and Xcode, you can build the Android side only.

Clone the repository and use the Gradle wrapper that ships in the repo rather than a system Gradle install. The wrapper scripts are at the top level:

bash
git clone https://github.com/touchlab/KaMPKit.git
cd KaMPKit
./gradlew build

On Windows the equivalent entry point is gradlew.bat. The README does not spell out a single build command; it points to docs/APP_BUILD.md for detailed instructions and says that by the end of that document you should be able to build and run both the Android and iOS apps. Treat that document as the tutorial, not the README.

The README then sets an explicit sanity check: if you cannot build Android and iOS, you need to get help, because the sample is configured to run out of the box. If it does not build, the project's position is that your build setup or config is wrong. That is a useful signal when you are deciding whether a failure is your fault or the kit's. Support runs through the #touchlab-tools channel in the Kotlin Community Slack (access is requested at slack.kotlinlang.org), or through Touchlab's contact form for direct assistance.

Where KaMP Kit stops, and why that is deliberate

The README has a section titled What's Not Included, and it is unusually direct. Comprehensive guides, advanced tutorials, and general support for fixing anything outside the starter app are all excluded. Touchlab says the scope is limited intentionally to keep focus.

That is the main limitation to plan around. If your team's question is how to structure a large shared module, how to handle platform-specific APIs at scale, or how to migrate a production app, the kit does not answer it. The starter app is a starting point for evaluation, not a scaffold for a shipping product.

There is a second, softer constraint. The README warns that information you find from Google about KMP is likely to be outdated or conflicting with the configuration in this repo, and recommends reaching out directly if you hit issues. That is honest, but it also means the kit's configuration can diverge from what other tutorials assume. When you compare KaMP Kit against a blog post, trust the repo's own docs first. Note also that no releases are published for this repository, so there is no versioned artifact to pin; you consume the default branch.

How it compares with a Compose Multiplatform wizard

The most natural alternative for someone starting KMP today is a Compose Multiplatform wizard, which generates a project with shared UI written in Compose and targets Android, iOS, desktop and web from one codebase. The difference in approach is where the UI lives. A Compose Multiplatform project shares the UI layer as well as the logic, so the amount of platform-specific code is smaller and the same screen renders on every target.

KaMP Kit goes the other way. It is a native mobile app with a shared Kotlin module, meaning the UI stays native on each platform and the shared code carries the architecture and business logic. The README frames this as Touchlab's focus on KMP for native mobile development. If your team is Android and iOS engineers who want to keep native UI, that split matches how you already work. If you want one UI codebase and are willing to accept Compose on iOS, the wizard's model is a closer fit and KaMP Kit will feel like it is solving a different problem.

A second reference point is KMMBridge, also from Touchlab, which appears in the searches around this project. KMMBridge addresses distributing a shared Kotlin module to iOS consumers, which is a packaging and integration concern. KaMP Kit is about the sample app and the patterns inside it. They sit at different stages of the same workflow.

Maintenance, licensing and the cost of upgrading

The repository is not archived, and its last push was on 2026-09-28. No releases are published, so there is no tagged version history to follow and no changelog to read before an upgrade. Upgrades therefore mean tracking the default branch and reading the docs that changed with it, including the SKIE migration case study if you adopt the 2023-era architecture.

The practical upgrade cost is tied to your toolchain. The README pins JVM 17, Android Studio 2023.3+ or IntelliJ 2024.1+, and Xcode 15+ on a Mac. As those tools move, the sample's Gradle configuration is what you would need to reconcile, and the README offers no rollback guidance if an upgrade breaks your build.

Licensing is Apache-2.0, per the LICENSE.txt file at the repository root. That is a permissive licence, which generally means you can reuse the code with attribution and without the copyleft obligations of a GPL-style licence. It does not tell you anything about the separate licences of the third-party libraries the starter app pulls in, and it is not legal advice; check those dependencies yourself if you plan to ship derived code.

Editorial conclusion

Adopt KaMP Kit if you are a native Android or iOS developer who wants a working KMP sample to evaluate the platform, and if you accept that the repository is a best-practice model rather than a supported product. Do not adopt it if you need comprehensive guides, advanced tutorials, or help with anything outside the starter app, because the README explicitly excludes that scope. Before committing, verify that your machine matches the stated requirements (JVM 17, Android Studio 2023.3+ or IntelliJ 2024.1+, and a Mac with Xcode 15+ for the iOS build), and read docs/APP_BUILD.md and docs/GENERAL_ARCHITECTURE.md to confirm the build succeeds on your setup before you plan any work around it.

Frequently asked questions

How does Kotlin Multiplatform work in a project like KaMP Kit?

KaMP Kit keeps native UI on each platform and puts the shared code in a common Kotlin module, so the Android app, the iOS project and the shared module live in one Gradle repository. The README describes this as KMP used for native mobile development, with the shared module carrying architecture and business logic rather than the UI.

Is Kotlin Multiplatform worth it, according to KaMP Kit?

KaMP Kit exists to let you evaluate that question rather than answer it for you. Its stated goal is to facilitate your evaluation of KMP, and it is built so you can set up your environment, clone the repo and have a running sample app quickly.

Which IDE is best for Kotlin Multiplatform development with KaMP Kit?

The README requires the latest stable Android Studio (2023.3+) or IntelliJ (2024.1+), along with JVM 17. For the iOS build you also need a Mac with Xcode 15+.

Does Netflix use Kotlin Multiplatform, and does that tell me anything about KaMP Kit?

The README does not mention Netflix or any other company's adoption of KMP, so it offers no evidence either way. What it does say is that KaMP Kit is Touchlab's own set of choices for architecture and libraries, drawn from their work with teams looking at KMP.

Official sources

  1. Issues
  2. License: Apache-2.0
  3. Project website
  4. README
  5. touchlab/KaMPKit on GitHub
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/touchlab-kampkit.svg)](https://hysenlabs.com/projects/touchlab-kampkit)