mirror of
https://github.com/meshtastic/Meshtastic-Android.git
synced 2026-03-27 18:21:58 -04:00
68 lines
2.6 KiB
Markdown
68 lines
2.6 KiB
Markdown
# `:app`
|
|
|
|
## Overview
|
|
The `:app` module is the entry point for the Meshtastic Android application. It orchestrates the various feature modules, manages global state, and provides the main UI shell.
|
|
|
|
## Key Components
|
|
|
|
### 1. `MainActivity` & `Main.kt`
|
|
The single Activity of the application. It hosts the `NavHost` and manages the root UI structure (Navigation Bar, Rail, etc.).
|
|
|
|
### 2. `MeshService`
|
|
The core background service that manages long-running communication with the mesh radio. While it is declared in the `:app` manifest for system visibility, its implementation resides in the `:core:service` module. It runs as a **Foreground Service** to ensure reliable communication even when the app is in the background.
|
|
|
|
### 3. Koin Application
|
|
`MeshUtilApplication` is the Koin entry point, providing the global dependency injection container.
|
|
|
|
## Architecture
|
|
The module primarily serves as a "glue" layer, connecting:
|
|
- `core:*` modules for shared logic.
|
|
- `feature:*` modules for specific user-facing screens.
|
|
|
|
## Module dependency graph
|
|
|
|
<!--region graph-->
|
|
```mermaid
|
|
graph TB
|
|
:app[app]:::android-application
|
|
:app -.-> :core:ble
|
|
:app -.-> :core:common
|
|
:app -.-> :core:data
|
|
:app -.-> :core:database
|
|
:app -.-> :core:datastore
|
|
:app -.-> :core:di
|
|
:app -.-> :core:domain
|
|
:app -.-> :core:model
|
|
:app -.-> :core:navigation
|
|
:app -.-> :core:network
|
|
:app -.-> :core:nfc
|
|
:app -.-> :core:prefs
|
|
:app -.-> :core:proto
|
|
:app -.-> :core:service
|
|
:app -.-> :core:resources
|
|
:app -.-> :core:ui
|
|
:app -.-> :core:barcode
|
|
:app -.-> :feature:intro
|
|
:app -.-> :feature:messaging
|
|
:app -.-> :feature:connections
|
|
:app -.-> :feature:map
|
|
:app -.-> :feature:node
|
|
:app -.-> :feature:settings
|
|
:app -.-> :feature:firmware
|
|
:app -.-> :feature:widget
|
|
|
|
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 fill:#FFC1CC,stroke:#000,stroke-width:2px,color:#000;
|
|
classDef unknown fill:#FFADAD,stroke:#000,stroke-width:2px,color:#000;
|
|
|
|
```
|
|
<!--endregion-->
|