À propos du projet
Meshtastic-Android est le client Meshtastic officiel pour Android et Compose Desktop, utilisé pour communiquer via des radios maillées open source. Le firmware côté appareil vit dans un dépôt séparé, et le site web du projet est meshtastic.org.
Les capacités clés mises en avant pour la ligne 2.8 incluent la découverte de réseau maillé pour trouver les nœuds et canaux à proximité, les invitations Mesh Beacon pour rejoindre les maillages voisins, les géorepérages de points de cheminement qui alertent lorsque des nœuds traversent des zones cartographiées dessinées, la sauvegarde/restauration/suppression chiffrée des clés de sécurité de l'appareil, le partage NFC des contacts et canaux vers des étiquettes, les indicateurs de signature de paquets XEdDSA dans l'interface des nœuds et de la messagerie, la télémétrie de qualité de l'air (PM1.0, PM2.5, PM10, CO2) provenant de capteurs pris en charge, et les fonctions d'application / intégration système-AI afin que les assistants sur l'appareil puissent déclencher des flux de travail courants.
La distribution se fait principalement via les versions GitHub, avec des liens Obtainium pour les mises à jour automatiques. Deux variantes existent : une variante `google` ajoutant Google Crashlytics et Google Maps, et une variante `fdroid` sans dépendances Google. L'application est également publiée sur F-Droid, IzzyOnDroid et Google Play, les mises à jour du Play Store arrivant en dernier. Les installateurs de bureau (DMG macOS, MSI/EXE Windows, DEB/RPM/AppImage Linux) sont livrés depuis GitHub Releases, et un Flatpak est disponible sur Flathub.
L'architecture repose sur un noyau Kotlin Multiplatform partagé ciblant Android et Compose Desktop. La logique métier, les sources de données et les modules de communication sont indépendants de la plateforme. L'interface utilisateur utilise JetBrains Compose Multiplatform avec Material 3, la gestion d'état suit un flux de données unidirectionnel avec ViewModels, Coroutines et Flow, l'injection de dépendances utilise Koin avec Koin Annotations, et la navigation utilise JetBrains Navigation 3 avec des liens profonds RESTful. La couche de données combine Room KMP, DataStore et Protobuf, avec des modèles protobuf consommés depuis un artefact Maven en amont. La prise en charge BLE utilise la bibliothèque multiplateforme Kable derrière des interfaces indépendantes de la plateforme.
Le dépôt est organisé en de nombreux modules documentés, notamment les hôtes androidApp et desktopApp, les modules principaux pour le domaine, le dépôt, le serveur TAK, le BLE, le réseau, les données, la base de données, le datastore, le service, la navigation, les ressources, le modèle, l'interface utilisateur, le commun, l'injection de dépendances, les tests, les tests d'architecture Konsist, le NFC, les préférences et le code-barres, ainsi que des modules de fonctionnalités pour la messagerie, la carte, les surfaces cartographiques MapLibre, les nœuds, les paramètres, le firmware, l'introduction, le provisionnement Wi-Fi, les connexions, la découverte, la documentation et un widget Glance pour l'écran d'accueil, ainsi que la génération de profils de référence.
Une fonctionnalité d'intégration est un serveur TAK local intégré, activé dans les paramètres, qui exécute un serveur TLS (mTLS) en boucle locale uniquement sur le port 8089 afin qu'ATAK sur le même appareil puisse se connecter et acheminer le trafic sur le maillage. La documentation comprend un site utilisateur/développeur Jekyll et une référence API générée par Dokka, tous deux déployés sur GitHub Pages lors des poussées vers main. Les traductions sont gérées via Crowdin. Le projet est sous licence GPL-3.0, avec des documents de contribution et de processus de publication, et note que les builds de débogage et de publication s'installent côte à côte mais ne doivent pas s'exécuter simultanément. La construction locale de la variante google nécessite une clé API Google Maps Android SDK dans secrets.properties ; sans elle, la construction réussit avec une clé factice mais les tuiles cartographiques ne se chargeront pas.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.