Skip to content

About

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

Resources

Stars

16 stars

Watchers

0 watching

Forks

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.

AI Disclosure

This project is developed with AI assistance. I guide the implementation and review every AI-generated line to check whether it is necessary and follows best practices. For example, I refined the convention plugins' build file line by line to keep the configuration minimal. I also reworked the Navigation 3 back stack multiple times to find the most straightforward approach.

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
  • shared - The module that wires dependencies together using dependency injection
  • androidApp, iosApp, desktopApp - The app entry points

Tech Stack

Roadmap

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

License

Apache License 2.0

About

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

Resources

Stars

16 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages