Skip to main content

Miru SDK

Kotlin Multiplatform SDK for accelerating mobile development.

JitPack

Miru SDK provides a modular, configurable foundation for building Android and iOS apps with shared business logic and UI components. Designed as an internal base project for software houses, it handles networking, state management, navigation, theming, and dependency injection out of the box — so your team can focus on features, not boilerplate.

Each module follows Clean Architecture principles with clear separation into data, domain, and presentation layers.

Why Miru SDK?

Building a new mobile project often means spending the first weeks wiring up the same infrastructure: HTTP client, error handling, ViewModel base classes, navigation, theming, DI, local storage. Miru SDK extracts all of that into reusable, tested modules that work across Android and iOS.

  • One dependency — the :miru-sdk umbrella module re-exports everything via api(), so your app's build.gradle.kts stays clean.
  • Pick and choose — need only networking and state management? Import :network and :ui-state individually.
  • Clean Architecture baked in — domain layer has zero dependencies; data implements domain contracts; presentation consumes domain use cases.
  • Five ViewModel helpers — from zero-boilerplate collectResource() to full state-reducer execute(), pick the right level of control for each screen.

Tech Stack

TechnologyVersionPurpose
Kotlin2.3.0Language
Compose Multiplatform1.10.0Shared UI
Ktor3.4.1HTTP Client
Koin4.1.0Dependency Injection
Kotlinx Serialization1.7.3JSON parsing
Kotlinx Coroutines1.9.0Async programming
Firebase KMP (GitLive)2.1.0Remote Config, FCM
KMPAuth2.5.0-alpha01OAuth (Google, Apple, Facebook)
Room KMP2.8.4Local database
DataStore KMP1.2.1Preferences storage
Coil3.0.4Image loading
AGP9.0.0Android build

Module Overview

ModuleDescription
:miru-sdkUmbrella module — single dependency that re-exports all modules
:coreBase utilities — Resource<T>, AppException, extensions, logging
:networkHTTP client — ApiService, safeApiCall, token management
:ui-stateState management — BaseViewModel, UiState, EventFlow, pagination
:ui-componentsUI library — Buttons, TextFields, Dialogs, Theming, MiruResourceView
:navigationNavigation — safe navigation, transitions, result passing
:firebaseFirebase KMP — Remote Config, FCM topic management
:authSocial Auth — Google, Apple, Facebook OAuth
:persistentLocal storage — Room KMP + DataStore preferences
:diDI — MiruSdkInitializer, Koin modules