Ga naar inhoud

Ontwikkelingsgids

Welkom bij de ontwikkelingsgids voor ELRS Mobile! Dit project is een native Flutter-implementatie van de ExpressLRS compilatie- en flitspijplijn, ontworpen om volledig offline te werken.

Om bij te dragen aan dit project, heeft u de volgende tools geïnstalleerd nodig:

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

  1. Kloon de repository:

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

    Terminal window
    flutter pub get
  3. Voer de applicatie uit:

    Terminal window
    # Voor Android
    flutter run
    # Voor iOS (vereist een Mac en een fysiek apparaat/simulator)
    flutter run

De codebase volgt een feature-first structuur, te vinden in lib/src/.

Functies

  • flashing/ De kernlogica en UI voor de flashing-pijplijn.
  • firmware_manager/ Beheert het downloaden en cachen van firmware van de artifactory.
  • configurator/ UI voor het instellen van gebruikersopties zoals Binding Phrases en WiFi.

Kern

  • networking/ Platformspecifieke logica voor procesbinding aan hardware-hotspots.
  • storage/ Lokaal cachebeheer en SQLite-persistentie.
  • analytics/ Privacy-eerst observeerbaarheid (Sentry en Aptabase).

We maken gebruik van Riverpod voor globaal statusbeheer en Flutter Hooks voor lokale widget-niveau status. Deze combinatie zorgt voor een zeer responsieve UI zonder de boilerplate van standaard StatefulWidgets.


Voor meer gedetailleerde technische informatie, verwijzen wij u naar de volgende handleidingen:


Bij het controleren van binaire bestanden kunt u kleine byte-offsets opmerken in vergelijking met de standaard Python Configurator. Dit komt door JSON-minificatie.

De Python Configurator voegt vaak spaties in na dubbele punten (bijv. {"uid": [1,2,3]}), terwijl ELRS Mobile dichte JSON genereert (bijv. {"uid":[1,2,3]}). Beide zijn functioneel identiek op hardware, aangezien de interne parser van de ESP32 deze witruimte negeert.