gitmyhub

kide

Kotlin ★ 5 updated 14d ago

Kide is a Kotlin Multiplatform (KMP) library for building applications with a strict MVI (Model–View–Intent) presentation layer and (optional) Clean Architecture layering. It targets Android, iOS. and JVM (desktop), and integrates with Compose Multiplatform, Navigation 3, Koin, Decompose, and Voyager through small optional modules.

A Kotlin Multiplatform architecture library for building app interfaces with a strict, AI-debuggable Model View Intent pattern.

KotlinCompose MultiplatformKoinMCPGradlesetup: moderatecomplexity 3/5

Kide is a Kotlin library that helps developers structure mobile and desktop apps using a strict pattern called MVI, short for Model View Intent, where every user action becomes a clearly defined intent, gets processed in one predictable place, and produces a new screen state. It works across Android, iOS, and desktop Java from a single shared codebase, and it plugs into popular tools for building app interfaces and navigation, such as Compose Multiplatform, Koin for dependency management, and either Decompose or Voyager for screen handling.

What sets Kide apart is that it was built with AI coding assistants in mind. It includes an optional debugging module that records every intent, state change, and side effect an app produces in a structured, queryable trace. That trace is exposed through a small embedded server using the Model Context Protocol, the same protocol AI assistants like Claude use to call outside tools. This means a connected AI agent can inspect why a specific piece of an app's state got stuck, trigger the same user actions the app would receive to reproduce a bug, and even generate a test that replays the failure, all without a developer manually digging through logs.

The library guarantees that no user interface events get silently dropped, processes each one in a deterministic order, and makes sure side effects like showing a message happen exactly once, with errors being caught so they cannot crash the whole processing loop. It also includes optional building blocks for Clean Architecture, a common way of separating an app's business logic from its interface, plus testing helpers for verifying how a screen responds to different actions.

Kide is split into several separate modules so a project only needs to include the pieces it actually uses. It is published to Maven Central and installed by adding Gradle dependency lines, with the current release being version 1.1.0. The project is released under the Apache 2.0 license.

Where it fits