Sobre el proyecto

Meshtastic-Android es el cliente oficial de Meshtastic para Android y Compose Desktop, utilizado para comunicarse a través de radios mesh de código abierto. El firmware del dispositivo reside en un repositorio separado, y el sitio web del proyecto es meshtastic.org. Las capacidades clave destacadas para la línea 2.8 incluyen descubrimiento de red mesh para encontrar nodos y canales cercanos, invitaciones Mesh Beacon para unirse a mallas cercanas, geocercas de waypoints que alertan cuando los nodos cruzan zonas dibujadas en el mapa, copia de seguridad/restauración/eliminación cifrada de claves de seguridad del dispositivo, intercambio NFC de contactos y canales a etiquetas, indicadores de firma de paquetes XEdDSA en la interfaz de nodos y mensajería, telemetría de calidad del aire (PM1.0, PM2.5, PM10, CO2) de sensores compatibles, y Funciones de Aplicación / integración de IA del sistema para que los asistentes en el dispositivo puedan activar flujos de trabajo comunes. La distribución se realiza principalmente a través de lanzamientos de GitHub, con enlaces Obtainium para actualizaciones automáticas. Existen dos variantes: una variante `google` que agrega Google Crashlytics y Google Maps, y una variante `fdroid` sin dependencias de Google. La aplicación también se publica en F-Droid, IzzyOnDroid y Google Play, con actualizaciones de Play Store llegando al final. Los instaladores de escritorio (DMG para macOS, MSI/EXE para Windows, DEB/RPM/AppImage para Linux) se distribuyen desde GitHub Releases, y hay un Flatpak disponible en Flathub. La arquitectura se basa en un núcleo compartido de Kotlin Multiplatform dirigido a Android y Compose Desktop. La lógica de negocio, las fuentes de datos y los módulos de comunicaciones son independientes de la plataforma. La interfaz de usuario utiliza JetBrains Compose Multiplatform con Material 3, la gestión de estado sigue un flujo de datos unidireccional con ViewModels, Coroutines y Flow, la inyección de dependencias usa Koin con Koin Annotations, y la navegación usa JetBrains Navigation 3 con enlaces profundos RESTful. La capa de datos combina Room KMP, DataStore y Protobuf, con modelos protobuf consumidos desde un artefacto Maven ascendente. El soporte BLE utiliza la biblioteca multiplataforma Kable detrás de interfaces independientes de la plataforma. El repositorio está organizado en muchos módulos documentados, incluidos hosts androidApp y desktopApp, módulos centrales para dominio, repositorio, servidor TAK, BLE, red, datos, base de datos, datastore, servicio, navegación, recursos, modelo, interfaz de usuario, común, DI, pruebas, pruebas de arquitectura Konsist, NFC, preferencias y código de barras, además de módulos de características para mensajería, mapa, superficies de mapa MapLibre, nodo, configuración, firmware, introducción, aprovisionamiento Wi-Fi, conexiones, descubrimiento, documentación y un widget Glance de pantalla de inicio, junto con la generación de perfiles de referencia. Una característica de integración es un Servidor TAK Local integrado, habilitado en la configuración, que ejecuta un servidor TLS (mTLS) solo de bucle local en el puerto 8089 para que ATAK en el mismo dispositivo pueda conectarse y enrutar tráfico a través de la malla. La documentación incluye un sitio de usuario/desarrollador Jekyll y una referencia de API generada por Dokka, ambos implementados en GitHub Pages en cada push a main. Las traducciones se gestionan a través de Crowdin. El proyecto tiene licencia GPL-3.0, con documentos de proceso de contribución y lanzamiento, y señala que las compilaciones de depuración y lanzamiento se instalan en paralelo pero no deben ejecutarse simultáneamente. Compilar la variante google localmente requiere una clave API del SDK de Google Maps Android en secrets.properties; sin ella, la compilación se realiza con una clave de marcador de posición, pero los mosaicos del mapa no se cargarán.