Meshtastic-Android/core/datastore
James Rich 875cf1cff2
refactor: migrate from Hilt to Koin and expand KMP common modules (#4746)
Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com>
2026-03-10 01:19:46 +00:00
..
src refactor: migrate from Hilt to Koin and expand KMP common modules (#4746) 2026-03-10 01:19:46 +00:00
build.gradle.kts refactor: migrate from Hilt to Koin and expand KMP common modules (#4746) 2026-03-10 01:19:46 +00:00
detekt-baseline.xml feat(wire): migrate from protobuf -> wire (#4401) 2026-02-04 00:01:12 +00:00
README.md chore: Scheduled updates (Firmware, Hardware, Translations, Graphs) (#4737) 2026-03-06 16:39:05 -06:00

:core:datastore

Overview

The :core:datastore module manages structured, asynchronous data storage using Jetpack DataStore. It is primarily used for storing complex configuration objects like radio channel sets and local device configurations.

Key Components

1. Data Sources

  • ChannelSetDataSource: Manages the storage of radio channel configurations.
  • RecentAddressesDataSource: Stores a list of recently connected radio addresses (BLE/USB/TCP).
  • UiPreferencesDataSource: Modern replacement for SharedPreferences for UI-related settings.

2. Serializers

Uses Kotlin Serialization to convert between Protobuf/JSON and the underlying DataStore storage.

Module dependency graph

graph TB
  :core:datastore[datastore]:::kmp-library

classDef android-application fill:#CAFFBF,stroke:#000,stroke-width:2px,color:#000;
classDef android-application-compose fill:#CAFFBF,stroke:#000,stroke-width:2px,color:#000;
classDef android-feature fill:#FFD6A5,stroke:#000,stroke-width:2px,color:#000;
classDef android-library fill:#9BF6FF,stroke:#000,stroke-width:2px,color:#000;
classDef android-library-compose fill:#9BF6FF,stroke:#000,stroke-width:2px,color:#000;
classDef android-test fill:#A0C4FF,stroke:#000,stroke-width:2px,color:#000;
classDef jvm-library fill:#BDB2FF,stroke:#000,stroke-width:2px,color:#000;
classDef kmp-library fill:#FFC1CC,stroke:#000,stroke-width:2px,color:#000;
classDef unknown fill:#FFADAD,stroke:#000,stroke-width:2px,color:#000;