About this project
Meshtastic-Android is the official Meshtastic client for Android and Compose Desktop, used to communicate over open-source mesh radios. The device-side firmware lives in a separate repository, and the project website is meshtastic.org.
Key capabilities highlighted for the 2.8 line include mesh network discovery for finding nearby nodes and channels, Mesh Beacon invitations for joining nearby meshes, waypoint geofences that alert when nodes cross drawn map zones, encrypted backup/restore/delete of device security keys, NFC sharing of contacts and channels to tags, XEdDSA packet signing indicators in node and messaging UI, air-quality telemetry (PM1.0, PM2.5, PM10, CO2) from supported sensors, and App Functions / system-AI integration so on-device assistants can trigger common workflows.
Distribution is primarily through GitHub releases, with Obtainium links for automatic updates. Two flavors exist: a `google` flavor adding Google Crashlytics and Google Maps, and an `fdroid` flavor without Google dependencies. The app is also published on F-Droid, IzzyOnDroid, and Google Play, with Play Store updates arriving last. Desktop installers (macOS DMG, Windows MSI/EXE, Linux DEB/RPM/AppImage) ship from GitHub Releases, and a Flatpak is available on Flathub.
Architecture is built on a shared Kotlin Multiplatform core targeting Android and Compose Desktop. Business logic, data sources, and communications modules are platform-agnostic. The UI uses JetBrains Compose Multiplatform with Material 3, state management follows unidirectional data flow with ViewModels, Coroutines and Flow, dependency injection uses Koin with Koin Annotations, and navigation uses JetBrains Navigation 3 with RESTful deep linking. The data layer combines Room KMP, DataStore, and Protobuf, with protobuf models consumed from an upstream Maven artifact. BLE support uses the Kable multiplatform library behind platform-agnostic interfaces.
The repository is organized into many documented modules, including androidApp and desktopApp hosts, core modules for domain, repository, TAK server, BLE, network, data, database, datastore, service, navigation, resources, model, UI, common, DI, testing, Konsist architecture tests, NFC, preferences, and barcode, plus feature modules for messaging, map, MapLibre map surfaces, node, settings, firmware, intro, Wi-Fi provisioning, connections, discovery, docs, and a home-screen Glance widget, along with baseline profile generation.
An integration feature is a built-in Local TAK Server, enabled in settings, which runs a loopback-only TLS (mTLS) server on port 8089 so ATAK on the same device can connect and route traffic over the mesh. Documentation includes a Jekyll user/developer site and a Dokka-generated API reference, both deployed to GitHub Pages on pushes to main. Translations are managed via Crowdin. The project is GPL-3.0 licensed, with contribution and release process documents, and notes that debug and release builds install side by side but should not run simultaneously. Building the google flavor locally requires a Google Maps Android SDK API key in secrets.properties; without it the build succeeds with a placeholder key but map tiles will not load.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.