2025-12-18 17:35:52 -06:00
# `:app`
2025-12-18 17:30:36 -06:00
2026-02-20 06:41:52 -06:00
## 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`
2026-03-31 16:25:37 -05:00
The single Activity of the application. It hosts the shared `MeshtasticNavDisplay` navigation shell and manages the root UI structure (Navigation Bar, Rail, etc.).
2026-02-20 06:41:52 -06:00
### 2. `MeshService`
2026-03-18 19:21:18 -05:00
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.
2026-02-20 06:41:52 -06:00
2026-03-09 20:19:46 -05:00
### 3. Koin Application
`MeshUtilApplication` is the Koin entry point, providing the global dependency injection container.
2026-02-20 06:41:52 -06:00
## Architecture
The module primarily serves as a "glue" layer, connecting:
- `core:*` modules for shared logic.
- `feature:*` modules for specific user-facing screens.
2025-12-18 17:30:36 -06:00
## Module dependency graph
<!-- region graph -->
```mermaid
graph TB
2026-02-20 06:41:52 -06:00
:app[app]:::android-application
:app -.-> :core:ble
:app -.-> :core:common
:app -.-> :core:data
:app -.-> :core:database
:app -.-> :core:datastore
:app -.-> :core:di
2026-03-09 20:45:41 -05:00
:app -.-> :core:domain
2026-02-20 06:41:52 -06:00
:app -.-> :core:model
:app -.-> :core:navigation
:app -.-> :core:network
:app -.-> :core:nfc
:app -.-> :core:prefs
:app -.-> :core:proto
:app -.-> :core:service
2026-02-22 21:39:50 -06:00
:app -.-> :core:resources
2026-02-20 06:41:52 -06:00
:app -.-> :core:ui
:app -.-> :core:barcode
2026-04-01 16:49:55 -05:00
:app -.-> :core:takserver
2026-02-20 06:41:52 -06:00
:app -.-> :feature:intro
:app -.-> :feature:messaging
2026-03-12 20:51:02 -05:00
:app -.-> :feature:connections
2026-02-20 06:41:52 -06:00
:app -.-> :feature:map
:app -.-> :feature:node
:app -.-> :feature:settings
:app -.-> :feature:firmware
2026-04-02 12:31:17 -05:00
:app -.-> :feature:wifi-provision
2026-03-19 07:30:01 -05:00
:app -.-> :feature:widget
2025-12-18 17:30:36 -06:00
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 ;
2026-03-12 22:15:20 -05:00
classDef compose-desktop-application fill:#CAFFBF ,stroke:#000 ,stroke-width:2px,color:#000 ;
2025-12-18 17:30:36 -06:00
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 ;
2026-03-17 16:51:09 -05:00
classDef kmp-feature fill:#FFD6A5 ,stroke:#000 ,stroke-width:2px,color:#000 ;
2026-03-24 21:15:51 -05:00
classDef kmp-library-compose fill:#FFC1CC ,stroke:#000 ,stroke-width:2px,color:#000 ;
2025-12-18 17:30:36 -06:00
classDef kmp-library fill:#FFC1CC ,stroke:#000 ,stroke-width:2px,color:#000 ;
classDef unknown fill:#FFADAD ,stroke:#000 ,stroke-width:2px,color:#000 ;
```
<!-- endregion -->