Meshtastic-Android/core/navigation
James Rich 6516287c62
Some checks are pending
Dependency Submission / dependency-submission (push) Waiting to run
Main CI (Verify & Build) / validate-and-build (push) Waiting to run
Main Push Changelog / Generate main push changelog (push) Waiting to run
refactor: BLE transport and UI for Kotlin Multiplatform unification (#4911)
Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com>
2026-03-25 02:15:51 +00:00
..
src feat: implement unified deep link routing for Kotlin Multiplatform (#4910) 2026-03-25 00:21:24 +00:00
build.gradle.kts feat: implement unified deep link routing for Kotlin Multiplatform (#4910) 2026-03-25 00:21:24 +00:00
README.md refactor: BLE transport and UI for Kotlin Multiplatform unification (#4911) 2026-03-25 02:15:51 +00:00

:core:navigation

Overview

The :core:navigation module defines the type-safe navigation structure for the entire application using Kotlin Serialization and the Jetpack Navigation library.

Key Components

1. Routes.kt

Contains all the serializable classes and objects that represent destinations in the app.

Features

  • Type-Safety: Leverages Kotlin Serialization to pass data between screens without fragile Bundle keys.
  • Centralized Definition: All routes are defined in one place to prevent circular dependencies between feature modules.

Usage

Feature modules depend on this module to define their entry points and navigate to other features.

import org.meshtastic.core.navigation.MessagingRoutes

navController.navigate(MessagingRoutes.Chat(nodeId = 12345))

Module dependency graph

graph TB
  :core:navigation[navigation]:::kmp-library-compose

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 compose-desktop-application 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-feature fill:#FFD6A5,stroke:#000,stroke-width:2px,color:#000;
classDef kmp-library-compose fill:#FFC1CC,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;