প্রকল্প সম্পর্কে

Meshtastic-Android হল Android এবং Compose Desktop-এর জন্য অফিসিয়াল Meshtastic ক্লায়েন্ট, যা ওপেন-সোর্স মেশ রেডিওর মাধ্যমে যোগাযোগে ব্যবহৃত হয়। ডিভাইস-সাইড ফার্মওয়্যার একটি পৃথক রিপোজিটরিতে থাকে এবং প্রকল্পের ওয়েবসাইট meshtastic.org। 2.8 লাইনের জন্য উল্লেখযোগ্য ক্ষমতাগুলোর মধ্যে রয়েছে কাছাকাছি নোড ও চ্যানেল খোঁজার জন্য মেশ নেটওয়ার্ক আবিষ্কার, কাছাকাছি মেশে যোগ দেওয়ার জন্য Mesh Beacon আমন্ত্রণ, আঁকা মানচিত্র অঞ্চল অতিক্রম করলে নোড সতর্ক করার ওয়েপয়েন্ট জিওফেন্স, ডিভাইস নিরাপত্তা কী-র এনক্রিপ্টেড ব্যাকআপ/রিস্টোর/মুছে ফেলা, ট্যাগে পরিচিতি ও চ্যানেলের NFC শেয়ারিং, নোড ও মেসেজিং UI-তে XEdDSA প্যাকেট সাইনিং নির্দেশক, সমর্থিত সেন্সর থেকে বায়ু-মানের টেলিমেট্রি (PM1.0, PM2.5, PM10, CO2), এবং App Functions / সিস্টেম-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 থেকে সরবরাহ করা হয় এবং Flathub-এ একটি Flatpak পাওয়া যায়। আর্কিটেকচার একটি শেয়ার্ড Kotlin Multiplatform কোরের উপর নির্মিত যা Android এবং Compose Desktop লক্ষ্য করে। বিজনেস লজিক, ডেটা সোর্স এবং যোগাযোগ মডিউল প্ল্যাটফর্ম-নিরপেক্ষ। UI JetBrains Compose Multiplatform ও Material 3 ব্যবহার করে, স্টেট ম্যানেজমেন্ট ViewModels, Coroutines এবং Flow সহ ইউনিডাইরেকশনাল ডেটা ফ্লো অনুসরণ করে, ডিপেন্ডেন্সি ইনজেকশন Koin Annotations সহ Koin ব্যবহার করে, এবং নেভিগেশন RESTful ডিপ লিংকিংসহ JetBrains Navigation 3 ব্যবহার করে। ডেটা লেয়ার Room KMP, DataStore এবং Protobuf একত্রিত করে, প্রোটোবাফ মডেল একটি আপস্ট্রিম Maven আর্টিফ্যাক্ট থেকে নেওয়া হয়। BLE সাপোর্ট প্ল্যাটফর্ম-নিরপেক্ষ ইন্টারফেসের পেছনে Kable মাল্টিপ্ল্যাটফর্ম লাইব্রেরি ব্যবহার করে। রিপোজিটরিটি অনেক ডকুমেন্টেড মডিউলে সংগঠিত, যার মধ্যে রয়েছে androidApp এবং desktopApp হোস্ট, ডোমেইন, রিপোজিটরি, TAK সার্ভার, BLE, নেটওয়ার্ক, ডেটা, ডেটাবেস, ডেটাস্টোর, সার্ভিস, নেভিগেশন, রিসোর্স, মডেল, UI, কমন, DI, টেস্টিং, Konsist আর্কিটেকচার টেস্ট, NFC, প্রেফারেন্স এবং বারকোডের জন্য কোর মডিউল, পাশাপাশি মেসেজিং, ম্যাপ, MapLibre ম্যাপ সারফেস, নোড, সেটিংস, ফার্মওয়্যার, ইন্ট্রো, Wi-Fi প্রভিশনিং, কানেকশন, ডিসকভারি, ডকস এবং একটি হোম-স্ক্রিন Glance উইজেটের জন্য ফিচার মডিউল, সাথে বেসলাইন প্রোফাইল জেনারেশন। একটি ইন্টিগ্রেশন ফিচার হল বিল্ট-ইন Local TAK Server, যা সেটিংসে সক্রিয় করা যায় এবং পোর্ট 8089-এ একটি লুপব্যাক-অনলি TLS (mTLS) সার্ভার চালায় যাতে একই ডিভাইসের ATAK সংযোগ করে মেশের মাধ্যমে ট্রাফিক রুট করতে পারে। ডকুমেন্টেশনে একটি Jekyll ইউজার/ডেভেলপার সাইট এবং একটি Dokka-জেনারেটেড API রেফারেন্স রয়েছে, উভয়ই main-এ পুশ হলে GitHub Pages-এ ডিপ্লয় হয়। অনুবাদ Crowdin-এর মাধ্যমে পরিচালিত হয়। প্রকল্পটি GPL-3.0 লাইসেন্সযুক্ত, অবদান ও রিলিজ প্রক্রিয়ার ডকুমেন্টসহ, এবং উল্লেখ করে যে ডিবাগ ও রিলিজ বিল্ড পাশাপাশি ইনস্টল হয় কিন্তু একসাথে চালানো উচিত নয়। স্থানীয়ভাবে google ফ্লেভার বিল্ড করতে secrets.properties-এ একটি Google Maps Android SDK API কী প্রয়োজন; এটি ছাড়া বিল্ড একটি প্লেসহোল্ডার কী দিয়ে সফল হয় কিন্তু ম্যাপ টাইল লোড হবে না।