Arkitekt
A modern Android & Kotlin Multiplatform architecture library built on Jetpack Compose and Kotlin Coroutines.
Arkitekt gives you a solid, testable foundation for building Android and KMP applications. It provides two architecture paths with the same core principles:
- Android / Compose — ViewModel + Hilt + Jetpack Compose
- Decompose / KMP — BaseComponent + Koin + Kotlin Multiplatform
Key Features
- Compose-ready ViewModels with built-in state management and one-shot events
- Coroutine Use Cases for clean, testable business logic (
UseCaseandFlowUseCase) - Kotlin Multiplatform support via Decompose with Koin dependency injection
- KSP Factory Generator for Decompose components (
@GenerateFactory) kotlin.Resultintegration withgetOrCancelfor safe coroutine error handling- Testing utilities for mocking use cases, testing ViewModels, and testing Decompose components
Quick Installation
dependencies {
// Android / Compose
implementation("app.futured.arkitekt:core:6.0.0-beta05")
implementation("app.futured.arkitekt:cr-usecases:6.0.0-beta05")
implementation("app.futured.arkitekt:compose:6.0.0-beta05")
// Decompose / KMP (optional)
implementation("app.futured.arkitekt:decompose:6.0.0-beta05")
implementation("app.futured.arkitekt:decompose-annotation:6.0.0-beta05")
ksp("app.futured.arkitekt:decompose-processor:6.0.0-beta05")
}
See Installation for full details and snapshot builds.
Get Started
Android / Compose
Set up a Jetpack Compose project with ViewModel, ViewState, and Hilt.
Decompose / KMP
Set up a Kotlin Multiplatform project with BaseComponent, Koin, and Decompose.
Sample Projects
See Arkitekt in action in working applications that follow the same architectural patterns described in this documentation.
Android / Compose
The example module in this repository contains a minimal Android sample. For a full real-world project setup, see the Android Project Template.
Decompose / KMP
A full Kotlin Multiplatform project (Android + iOS) using BaseComponent, Koin, Decompose navigation, and KSP factory generation — KMP Futured Template.