Skip to content

DeweyReed/kmp-sample

Repository files navigation

KMP Sample

Develop

A multi-module Kotlin Multiplatform (KMP) application built to demonstrate modern development best practices. It consumes the Spaceflight News API to provide a list-detail view of the latest spaceflight articles.

Screenshots

Screenshot

Features

  • Cross-Platform UI - 100% shared UI using Compose Multiplatform
  • Offline-First - Caches network requests using Room (KMP) for seamless offline viewing
  • Modern State Management - Unidirectional Data Flow using the MVI (Model-View-Intent) pattern
  • Deep Modularization - Strict separation of concerns via feature-based multi-module architecture

Architecture

This project utilizes Clean Architecture combined with a multi-module setup managed by Gradle Convention Plugins (build-logic). The project is split into the following layers:

  • base - Core utilities and base classes
  • feature - Feature modules
    • api - Public models and interfaces
    • data - Internal implementation (Repositories, Network, Database)
    • presentation - UI, ViewModels, and Composables
  • data - Core module that collects feature data modules
  • composeApp - The application module that wires dependencies together using dependency injection
  • androidApp, iosApp - The app entry points

Tech Stack

Architecture

  • Kotlin Multiplatform - Targeting Android, iOS, and Desktop
  • Gradle Convention Plugins & Version Catalogs - Scalable, type-safe build logic
  • Koin - Dependency Injection
  • Coroutines & Flow - Asynchronous programming

UI

Data

Testing

  • kotlin-test & koin-test - Unit testing
  • ktor-client-mock - Mocking API responses

CI/CD

  • GitHub Actions - Continuous Integration for automated building and testing

Roadmap

  • Replace Koin with Metro(Kotlin 2.3.20)
  • Add feature:settings
  • Build binaries with CI
  • Replace Nav2 with Nav3

License

Apache License 2.0

About

A multi-module Kotlin Multiplatform (KMP) application built to demonstrate modern development best practices

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Contributors