Przejdź do głównej zawartości

Przewodnik deweloperski

Witaj w przewodniku rozwoju ELRS Mobile! Ten projekt to natywna implementacja Fluttera potoku kompilacji i flashowania ExpressLRS, zaprojektowana do działania całkowicie offline.

Aby przyczynić się do tego projektu, będziesz potrzebować zainstalowanych następujących narzędzi:

Flutter SDK (Stabilna) Dart SDK Python 3.x Cocoapods (iOS/macOS)

  1. Sklonuj repozytorium:

    Okno terminala
    git clone https://github.com/wbhinton/ELRS-Mobile.git
    cd ELRS-Mobile
  2. Zainstaluj zależności:

    Okno terminala
    flutter pub get
  3. Uruchom aplikację:

    Okno terminala
    # Dla Androida
    flutter run
    # Dla iOS (wymaga Maca i urządzenia fizycznego/symulatora)
    flutter run

Baza kodu ma strukturę zorientowaną na funkcje, zlokalizowaną w lib/src/.

Funkcje

  • flashing/ Główna logika i interfejs użytkownika dla potoku flashowania.
  • firmware_manager/ Zarządza pobieraniem i buforowaniem firmware z repozytorium artefaktów.
  • configurator/ Interfejs użytkownika do ustawiania opcji użytkownika, takich jak Binding Phrases i WiFi.

Rdzeń

  • networking/ Logika specyficzna dla platformy do wiązania procesów z hotspotami sprzętowymi.
  • storage/ Zarządzanie lokalną pamięcią podręczną i trwałość SQLite.
  • analytics/ Obserwowalność zorientowana na prywatność (Sentry i Aptabase).

Wykorzystujemy Riverpod do globalnego zarządzania stanem i Flutter Hooks do lokalnego stanu na poziomie widżetów. To połączenie zapewnia wysoce reaktywny interfejs użytkownika bez powtarzalnego kodu standardowych StatefulWidgets.


Aby uzyskać bardziej szczegółowe informacje techniczne, zapoznaj się z poniższymi przewodnikami:


Podczas audytu plików binarnych możesz zauważyć niewielkie różnice w liczbie bajtów w porównaniu ze standardowym Configuratorem Python. Wynika to z minifikacji JSON.

Configurator Python często wstawia spacje po dwukropkach (np. {"uid": [1,2,3]}), podczas gdy ELRS Mobile generuje gęsty JSON (np. {"uid":[1,2,3]}). Obie formy są funkcjonalnie identyczne na sprzęcie, ponieważ wewnętrzny parser ESP32 ignoruje te białe znaki.