Lewati ke konten

Utviklingsveiledning

Konten ini belum tersedia dalam bahasa Anda.

Velkommen til ELRS Mobile utviklingsguide! Dette prosjektet er en native Flutter-implementering av ExpressLRS-kompilerings- og flashing-pipelinen, designet for å fungere helt offline.

For å bidra til dette prosjektet, vil du trenge følgende verktøy installert:

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

  1. Klon depotet:

    Terminal window
    git clone https://github.com/wbhinton/ELRS-Mobile.git
    cd ELRS-Mobile
  2. Installer avhengigheter:

    Terminal window
    flutter pub get
  3. Kjør applikasjonen:

    Terminal window
    # For Android
    flutter run
    # For iOS (krever en Mac og fysisk enhet/simulator)
    flutter run

Kodebasen følger en funksjon-først-struktur lokalisert i lib/src/.

Funksjoner

  • flashing/ Kjernelogikken og brukergrensesnittet for flashing-pipelinen.
  • firmware_manager/ Håndterer nedlasting og mellomlagring av fastvare fra artifactory.
  • configurator/ Brukergrensesnitt for å angi brukeralternativer som Binding Phrases og WiFi.

Kjerne

  • networking/ Plattformspesifikk logikk for prosessbinding til maskinvare-hotspots.
  • storage/ Lokal mellomlagring og SQLite-persistens.
  • analytics/ Personvernførst-observabilitet (Sentry og Aptabase).

Vi bruker Riverpod for global tilstandshåndtering og Flutter Hooks for lokal widget-nivå tilstand. Denne kombinasjonen sikrer et svært reaktivt brukergrensesnitt uten den repeterende koden fra standard StatefulWidgets.


For mer detaljert teknisk informasjon, vennligst se følgende guider:


Når du reviderer binærfiler, kan du merke små byte-avvik sammenlignet med standard Python Configurator. Dette skyldes JSON-minifisering.

Python Configurator injiserer ofte mellomrom etter kolon (f.eks. {"uid": [1,2,3]}), mens ELRS Mobile genererer tett JSON (f.eks. {"uid":[1,2,3]}). Begge er funksjonelt identiske på maskinvare, da ESP32s interne parser ignorerer dette mellomrommet.