オープンソースプロジェクト
meshtastic/Meshtastic-Android avatar
meshtastic/Meshtastic-Android

Meshtastic Androidでメッシュ無線を操作する

Meshtastic 用の Android アプリケーション。 Meshtastic-Android これは、オープンソースのメッシュ無線で Android (および Compose Desktop) を使用するためのツールです。

スター 1,838フォーク 515KotlinGPL-3.0

ひと目でわかる

これは何?
Meshtasticの無線デバイスをAndroidとCompose Desktopから扱う公式クライアントの構成、更新、ビルド条件を確認します。
誰に向いている?
Meshtastic Androidでメッシュ無線を操作するは、READMEに示された構成を自分の環境で検証できる開発者やチームに向きます。文書だけで性能、互換性、運用上の安全性まで保証されたと考える利用者には向きません。
商用利用できる?
条件付きでできます。GPL-3.0 はコピーレフトのライセンスで、これを含むソフトウェアを配布する場合、そのソフトウェアのソースコードを同じライセンスで公開する必要があります。配布せず社内で使うだけなら、この義務は生じません。
今もメンテナンスされている?
されています。直近 1 日以内に新しいコミットがあります。
何の言語で書かれている?
主に Kotlin です(GitHub の言語統計による)。

回答はプロジェクトの GitHub データ(最終同期:2026年9月15日)と当サイトの分析に基づくもので、法的助言ではありません。

オープンソース詳細解説

無線機とクライアントの役割

Meshtastic-Androidリポジトリには、AndroidデバイスおよびCompose Desktopを介したデスクトップOSからMeshtasticメッシュ無線とやり取りするためのKotlinアプリケーションが含まれています。READMEは、これをオープンソースのメッシュ無線でAndroidとCompose Desktopを使用するためのツールと説明しています。デバイス側ファームウェアは別のリポジトリにあり、READMEからリンクされています。プロジェクトのホームページはmeshtastic.orgで、READMEは質問やフィードバックをGitHubディスカッションフォーラムとDiscordグループに誘導しています。

Meshtastic-Androidは、オープンソースのメッシュ無線機をAndroidとCompose Desktopから操作するためのアプリです。READMEはデバイス側コードを別のmeshtastic/firmwareリポジトリへ案内しています。したがって、アプリの画面や接続処理と、無線機上で動くfirmwareの機能を一つのリリースとして扱うと、原因の切り分けを誤ります。

AndroidとCompose Desktopの対象

READMEには2.8.0リリースで導入された機能がリストされています。これには、周囲のノードとチャネルを表示するメッシュネットワークディスカバリ(近くのメッシュに参加するためのMesh Beacon招待を含む)、地図上にゾーンを描画しノードが越えたときにアラートを出すウェイポイントジオフェンス、デバイスのセキュリティキーの暗号化バックアップ・復元・削除を行うセキュアキーバックアップ、共有連絡先とチャネルをNFCタグに書き込むNFC共有、ノードおよびメッセージUIでのXEdDSAパケット署名インジケータ、対応センサーからのPM1.0、PM2.5、PM10、CO₂読み取り値を含む大気質テレメトリ、オンデバイスアシスタントが一般的なワークフローをトリガーできるアプリ機能/システムAI統合が含まれます。READMEには、これらの機能がどのように実装されているかについての詳細はありません。

READMEの更新情報には2.8.0の変更が記載されていますが、利用できる機能は接続するfirmware、端末の権限、無線デバイスの種類にも左右されます。アプリのバージョン、firmwareのバージョン、端末モデル、接続方式を同時に記録し、メッセージ送受信、チャンネル設定、再接続を別々に試します。

2.8.0で確認する変更範囲

最新リリースを入手する最も速い方法はGitHub releasesページで、READMEは自動更新のためにObtainiumの使用を推奨しています。googleフレーバーにはGoogle CrashlyticsとGoogle Mapsが含まれ、fdroidフレーバーにはGoogle依存関係がありません。READMEは、両フレーバーについて、最新リリースとオープンベータチャネル向けのObtainium設定リンクを提供しています。READMEの表によると、最新リリースはv2.8.0(2026-07-29)で、現在公開されているオープンベータはありません。アプリはF-Droid、IzzyOnDroid、Google Playストア、GitHub releasesからも直接入手できます。READMEによると、Playストアの更新は最も遅いです。macOS、Windows、Linux用のデスクトップインストーラーはGitHub Releasesから入手でき、FlathubにはFlatpakもあります。

Android配布版を使う場合とソースからビルドする場合では、確認する資料が違います。READMEが示すドキュメントやAPIリファレンスを入口にし、Gradle設定、Compose関連モジュール、テストの実行結果を確認します。READMEにない端末互換性や電波環境の性能は、記載された事実からは断定できません。

接続方式と権限の切り分け

2つのドキュメントサイトが、mainブランチへのプッシュごとに自動的にGitHub Pagesにデプロイされます。Jekyllで構築されたユーザーおよび開発者向けドキュメントには、ユーザーガイド、開発者ガイド、アプリ内ドキュメントコンテンツが含まれています。APIリファレンスはDokkaで生成され、すべての公開APIのKDocを提供します。READMEには、これらのサイトをローカルで生成するコマンドも含まれています。Jekyllサイトは`./gradlew generateDocsBundle publishDocsSite`の後にJekyll serveコマンドを実行し、APIリファレンスは`./gradlew dokkaGeneratePublicationHtml`で生成します。READMEに記載されているビルドコマンドはこれらだけです。

無線機との接続が失敗したときは、BluetoothやUSBなどの権限、端末の省電力設定、デバイス側のfirmware、アプリのログを分けて見ます。送信成功の表示だけで相手へ届いたとは判断せず、別ノードで受信したこと、再起動後に設定が残ること、オフライン復帰後の状態を確かめます。

モジュール構成を読む

アプリは最新のAndroid開発プラクティスに従い、共有Kotlin Multiplatformコア上に構築されています。ビジネスロジック、データソース、通信モジュールはプラットフォームに依存せず、AndroidとCompose Desktopをターゲットにしています。UIはJetBrains Compose MultiplatformとMaterial 3を使用し、状態管理はViewModel、Coroutines、Flowを使用した単方向データフローに従い、依存性注入はKoinとKoin Annotationsを使用し、ナビゲーションはJetBrains Navigation 3を使用しています。データ層はリポジトリパターンを使用し、Room KMPによるローカル永続化、DataStoreによる設定、Protobufによるデバイス通信を採用し、Protobufモデルは上流の`org.meshtastic:protobufs` Mavenアーティファクトから消費されます。BLEスタックはマルチプラットフォームでインターフェース駆動であり、Kableライブラリを使用しています。リポジトリは多くのモジュールに分かれており、各モジュールには独自のREADMEがあります。READMEにはcore/domain、core/ble、feature/messaging、feature/mapなどのモジュールをリストした表があり、マクロベンチマークベースラインプロファイル生成用のbaselineprofileモジュールも含まれています。

リポジトリのモジュール一覧とAPIリファレンスは、画面機能の一覧ではなくコードの境界を読む手掛かりです。変更を加える場合は、UI、通信、永続化、共有コードのどこに触れるかを先に特定し、Androidだけで通る変更をDesktopへそのまま適用しないようにします。

ローカルビルドとテスト

READMEはビルド手順についてmeshtastic.org/docs/development/android/を参照しており、デバッグビルドとリリースビルドは同時にインストールできますが、両方を同時に実行しないでください。使用していないアプリを強制終了してくださいという警告が含まれています。googleフレーバーをローカルでビルドする場合、リポジトリルートの`secrets.properties`に`MAPS_API_KEY`として独自のGoogle Maps Android SDK APIキーを指定する必要があります。ファイルがない場合、`secrets.defaults.properties`のプレースホルダーによりビルドは成功しますが、地図タイルは読み込まれません。READMEには他にビルド固有の詳細はありません。

ビルドではREADMEの要求するJDK、Android SDK、Gradle、依存ライブラリの版を確認し、クリーン環境でassembleとテストを実行します。デバッグビルドを実機へ入れたら、既存データをバックアップしてから接続・送信・受信・設定変更を行い、アップグレード前後のログを比較します。

firmwareとアプリを別に更新する

リポジトリはGPL-3.0でライセンスされており、リポジトリメタデータとREADMEの著作権行に示されています。ライセンス抜粋は、ソフトウェアが自由かつコピーレフトであり、ユーザーに全バージョンを共有および変更する自由を保証し、この自由ソフトウェアには保証がないと述べています。READMEは、セキュリティ保証やサポートの約束を提供しておらず、コミュニティのDiscord、GitHub issues、ディスカッションフォーラムへの支援を指し示すだけです。READMEはまた、クローズドベータおよびコミットごとのスナップショットチャネル、インポート可能な設定ファイル、セットアップの詳細が別のtest-buildsドキュメントファイルにあると述べています。

採用前の最小試験は、同じアプリ版とfirmware版で二台以上のノードを接続し、固定したチャンネルで短いメッセージを送受信することです。次に一台を圏外にして再接続、アプリ更新、firmware更新を別々に行い、どの組み合わせで設定や履歴が変わるかを記録します。ライセンスはGPL-3.0です。

編集部の結論

Meshtastic Androidでメッシュ無線を操作するは、READMEに示された構成を自分の環境で検証できる開発者やチームに向きます。文書だけで性能、互換性、運用上の安全性まで保証されたと考える利用者には向きません。導入前に、この記事で挙げた固有のコマンドと入力を小さな隔離環境で実行し、ログ、出力、失敗時の状態を記録してから対象範囲を広げてください。

公式情報源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
コミュニティノート

コミュニティノート