Utviklingsveiledning
Esta página aún no está disponible en tu idioma.
Velkommen til ELRS Mobile utviklingsguide! Dette prosjektet er en native Flutter-implementering av ExpressLRS-kompilerings- og flashing-pipelinen, designet for å fungere helt offline.
Forutsetninger
Section titled “Forutsetninger”For å bidra til dette prosjektet, vil du trenge følgende verktøy installert:
Komme i gang
Section titled “Komme i gang”-
Klon depotet:
Terminal window git clone https://github.com/wbhinton/ELRS-Mobile.gitcd ELRS-Mobile -
Installer avhengigheter:
Terminal window flutter pub get -
Kjør applikasjonen:
Terminal window # For Androidflutter run# For iOS (krever en Mac og fysisk enhet/simulator)flutter run
Prosjektarkitektur
Section titled “Prosjektarkitektur”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).
Tilstandshåndtering
Section titled “Tilstandshåndtering”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.
Dybdeanalyser
Section titled “Dybdeanalyser”For mer detaljert teknisk informasjon, vennligst se følgende guider:
- Technical Architecture: En dypdykk i
FirmwareAssemblerog den native nettverksstakken. - Firmware Validation: Hvordan bruke Dart- og Python-verktøyene for å verifisere binær integritet.
Merknad om JSON-minifisering
Section titled “Merknad om JSON-minifisering”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.