عن المشروع

Meshtastic-Android هو عميل Meshtastic الرسمي لنظام Android وCompose Desktop، ويُستخدم للتواصل عبر أجهزة الراديو mesh مفتوحة المصدر. البرنامج الثابت الخاص بالجهاز موجود في مستودع منفصل، والموقع الإلكتروني للمشروع هو meshtastic.org. تشمل القدرات الرئيسية المميزة لخط الإصدار 2.8 اكتشاف شبكة mesh للعثور على العقد والقنوات القريبة، ودعوات Mesh Beacon للانضمام إلى شبكات mesh القريبة، والمناطق الجغرافية للطريق (waypoint geofences) التي تنبه عند عبور العقد لمناطق مرسومة على الخريطة، والنسخ الاحتياطي/الاستعادة/الحذف المشفر لمفاتيح أمان الجهاز، ومشاركة جهات الاتصال والقنوات عبر NFC إلى البطاقات، ومؤشرات توقيع حزم XEdDSA في واجهة العقد والرسائل، وقياس جودة الهواء (PM1.0، PM2.5، PM10، CO2) من أجهزة الاستشعار المدعومة، وتكامل App Functions / system-AI بحيث يمكن للمساعدين على الجهاز تشغيل سير العمل الشائعة. التوزيع يتم بشكل أساسي من خلال إصدارات GitHub، مع روابط Obtainium للتحديثات التلقائية. يوجد نوعان: نوع `google` يضيف Google Crashlytics وGoogle Maps، ونوع `fdroid` بدون تبعيات Google. التطبيق منشور أيضًا على F-Droid وIzzyOnDroid وGoogle Play، مع وصول تحديثات Play Store أخيرًا. مثبتات سطح المكتب (macOS DMG، Windows MSI/EXE، Linux DEB/RPM/AppImage) تُشحن من GitHub Releases، وFlatpak متاح على Flathub. البنية مبنية على نواة Kotlin Multiplatform مشتركة تستهدف Android وCompose Desktop. منطق الأعمال ومصادر البيانات ووحدات الاتصالات مستقلة عن المنصة. واجهة المستخدم تستخدم JetBrains Compose Multiplatform مع Material 3، وإدارة الحالة تتبع تدفق البيانات أحادي الاتجاه مع ViewModels وCoroutines وFlow، وحقن التبعية يستخدم Koin مع Koin Annotations، والتنقل يستخدم JetBrains Navigation 3 مع روابط عميقة RESTful. طبقة البيانات تجمع بين Room KMP وDataStore وProtobuf، مع نماذج protobuf المستهلكة من قطعة Maven upstream. دعم BLE يستخدم مكتبة Kable متعددة المنصات خلف واجهات مستقلة عن المنصة. المستودع منظم في العديد من الوحدات الموثقة، بما في ذلك مضيفي androidApp وdesktopApp، ووحدات أساسية للمجال والمستودع وخادم TAK وBLE والشبكة والبيانات وقاعدة البيانات وdatastore والخدمة والتنقل والموارد والنموذج وUI والمشترك وDI والاختبار واختبارات بنية Konsist وNFC والتفضيلات والباركود، بالإضافة إلى وحدات ميزات للرسائل والخريطة وأسطح خريطة MapLibre والعقد والإعدادات والبرنامج الثابت والمقدمة وتوفير Wi-Fi والاتصالات والاكتشاف والمستندات وودجت Glance للشاشة الرئيسية، جنبًا إلى جنب مع توليد ملف تعريف أساسي. ميزة التكامل هي خادم TAK محلي مدمج، يتم تمكينه في الإعدادات، ويشغل خادم TLS (mTLS) يعمل على المنفذ 8089 فقط على الحلقة المحلية بحيث يمكن لـ ATAK على نفس الجهاز الاتصال وتوجيه حركة المرور عبر mesh. تشمل الوثائق موقع Jekyll للمستخدم/المطور ومرجع API المولد بواسطة Dokka، وكلاهما يُنشر على GitHub Pages عند الدفع إلى main. تتم إدارة الترجمات عبر Crowdin. المشروع مرخص بموجب GPL-3.0، مع مستندات عملية المساهمة والإصدار، وملاحظات أن إصدارات التصحيح والإصدار تُثبت جنبًا إلى جنب ولكن لا ينبغي تشغيلها في وقت واحد. بناء نوع google محليًا يتطلب مفتاح API من Google Maps Android SDK في secrets.properties؛ بدونه ينجح البناء بمفتاح نائب لكن بلاطات الخريطة لن تُحمّل.