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.
Vereisten
Section titled “Vereisten”Om bij te dragen aan dit project, heeft u de volgende tools geïnstalleerd nodig:
Aan de slag
Section titled “Aan de slag”-
Kloon de repository:
Terminal window git clone https://github.com/wbhinton/ELRS-Mobile.gitcd ELRS-Mobile -
Installeer afhankelijkheden:
Terminal window flutter pub get -
Voer de applicatie uit:
Terminal window # Voor Androidflutter run# Voor iOS (vereist een Mac en een fysiek apparaat/simulator)flutter run
Projectarchitectuur
Section titled “Projectarchitectuur”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).
Statusbeheer
Section titled “Statusbeheer”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.
Diepgaande analyses
Section titled “Diepgaande analyses”Voor meer gedetailleerde technische informatie, verwijzen wij u naar de volgende handleidingen:
- Technische Architectuur: Een diepgaande analyse van de
FirmwareAssembleren de native netwerkstack. - Firmware Validatie: Hoe de Dart- en Python-tools te gebruiken om binaire integriteit te verifiëren.
Opmerking over JSON-minificatie
Section titled “Opmerking over JSON-minificatie”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.