Die offizielle Aiways Community App
  • Java 98.2%
  • Dart 1.7%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Timo Erdbrügger 2d6d27d400
All checks were successful
CI / analyze (push) Successful in 1m10s
CI / gate (push) Successful in 1s
CI / release (push) Successful in 8m9s
CI / deploy-web (push) Successful in 2s
release: QR-Scanner startet wieder, Fahrzeuge unter Profil, Einstieg ohne Konto (Issue #13)
1. Kamera blieb schwarz: mobile_scanner 5.2.3 haengt an CameraX 1.3.3/compileSdk 34 und
   startet mit targetSdk 36 auf aktuellen Androids nicht mehr -> Bump auf ^7.4.0
   (CameraX 1.6.1, compileSdk 36). Zusaetzlich eigener errorBuilder: statt des
   kommentarlosen weissen Ausrufezeichens jetzt Klartext-Fehler (Freigabe fehlt /
   keine Kamera / Fehlercode), "Erneut versuchen" (setzt Controller komplett neu auf,
   noetig wenn die Freigabe erst im Dialog kam) und "Stattdessen Text einfuegen".
   Dazu Platzhalter waehrend des Starts und ein Sucher-Rahmen in Tuerkis.
2. "Fahrzeug hinzufuegen" raus aus "Mehr", rein unter Mehr > Profil > Fahrzeuge:
   neuer VehiclesScreen listet die Fahrzeuge des Kontos, waehlt das aktive aus und
   traegt den Provisionier-Einstieg (am Handy; im Web mit Hinweis).
3. Keine Sackgasse ohne Konto: Login-Screen bekommt "Mit Fahrzeug starten" ->
   SetupScreen scannt den Head-Unit-QR, uebernimmt die Backend-URL daraus, fragt
   /auth/config und bietet je nach allowRegistration Anmelden oder Konto anlegen
   (neu: ApiClient.register / AppState.register), danach direkt weiter ins
   "Fahrzeug hinzufuegen" mit schon geladenem QR.

Verifiziert: flutter analyze clean, 118 Tests gruen (4 neue Smoke-/Regressionstests),
flutter build web ok, Android-Debug-APK baut mit mobile_scanner 7.4.0.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-01 23:14:17 +02:00
.github/workflows release: Gradle-Daemon im APK-Build abschalten (RAM-Spitzen entkoppeln) 2026-08-31 13:24:30 +02:00
android release: QR-Scanner startet wieder, Fahrzeuge unter Profil, Einstieg ohne Konto (Issue #13) 2026-09-01 23:14:17 +02:00
assets release: Dachkante des U5-Freistellers weich statt treppig (Issue #9) 2026-08-30 11:59:51 +02:00
ios Flutter-App v0.1: dark, Aiways-Look, Backend-Anbindung 2026-08-27 23:27:01 +02:00
lib release: QR-Scanner startet wieder, Fahrzeuge unter Profil, Einstieg ohne Konto (Issue #13) 2026-09-01 23:14:17 +02:00
reference Referenz: kuratiertes jadx-Decompilat der Original-Aiways-App (v1.4.1) 2026-08-27 23:09:25 +02:00
scripts release: Webserver (nginx) automatisch mit einrichten 2026-08-28 01:40:40 +02:00
test release: QR-Scanner startet wieder, Fahrzeuge unter Profil, Einstieg ohne Konto (Issue #13) 2026-09-01 23:14:17 +02:00
tool release: Dachkante des U5-Freistellers weich statt treppig (Issue #9) 2026-08-30 11:59:51 +02:00
web web/index.html aktualisiert 2026-08-28 01:25:15 +02:00
.gitattributes Referenz: kuratiertes jadx-Decompilat der Original-Aiways-App (v1.4.1) 2026-08-27 23:09:25 +02:00
.gitignore Flutter-App v0.1: dark, Aiways-Look, Backend-Anbindung 2026-08-27 23:27:01 +02:00
.metadata Flutter-App v0.1: dark, Aiways-Look, Backend-Anbindung 2026-08-27 23:27:01 +02:00
analysis_options.yaml Flutter-App v0.1: dark, Aiways-Look, Backend-Anbindung 2026-08-27 23:27:01 +02:00
pubspec.lock release: QR-Scanner startet wieder, Fahrzeuge unter Profil, Einstieg ohne Konto (Issue #13) 2026-09-01 23:14:17 +02:00
pubspec.yaml release: QR-Scanner startet wieder, Fahrzeuge unter Profil, Einstieg ohne Konto (Issue #13) 2026-09-01 23:14:17 +02:00
README.md release: QR-Scanner startet wieder, Fahrzeuge unter Profil, Einstieg ohne Konto (Issue #13) 2026-09-01 23:14:17 +02:00

Aiways App (OpenAiways)

Flutter-App fürs Smartphone, die mit unserem OpenAiways-Backend (aiways/Backend, https://aiways.it-perspective.de) spricht — Look & Feel inspiriert von der originalen Aiways-App, dunkles Design, Akzentfarbe Aiways-Türkis #00CFB4.

Teil des OpenAiways-Projekts — Steuerung & Telemetrie des eigenen Aiways U5, nachdem der Hersteller die Cloud abgeschaltet hat.

Features

  • Login gegen das Backend (/auth/login, Token wird lokal gespeichert).
  • Erstinbetriebnahme — „Mit Fahrzeug starten" direkt auf dem Login-Screen: den Head-Unit-QR scannen, Backend-URL daraus übernehmen, anmelden (oder Konto anlegen, falls das Backend allowRegistration meldet) und weiter ins Provisionieren. Später liegt derselbe Weg unter Mehr → Profil → Fahrzeuge → Fahrzeug hinzufügen.
  • Übersicht — SoC-Ring, Reichweite, Spannung/Strom, Speed, Kilometerstand, Gang, Ladezustand, Standort (GPS). Pull-to-refresh.
  • Telemetrie — Zeitreihen-Chart (SoC/Spannung/Strom/Speed/Reichweite) aus /vehicles/:id/timeseries (fl_chart).
  • Steuerung — Command-Queue: Befehle (verriegeln/entriegeln/Klima/Hupe/Blinken) einreihen (POST /commands) + Status der letzten Befehle.
  • Einstellungen — Backend-URL umstellbar, Nutzer/Rolle, Logout.

Design-Vorlage

Die Farb-/Icon-Anker stammen aus dem jadx-Decompilat der Original-App unter reference/original-app-jadx/ — u.a. app_base_color = #00CFB4. Das Original ist selbst eine Flutter-App; die Dart-Logik ist kompiliert (nicht lesbar), die Ressourcen dienen als Inspiration.

Entwicklung

flutter pub get
flutter run                 # auf angeschlossenem Gerät / Emulator
flutter analyze             # statische Prüfung (aktuell: keine Issues)

Build (Android-APK)

flutter build apk --release
# Ergebnis: build/app/outputs/flutter-apk/app-release.apk

Projektstruktur

lib/
  main.dart              App-Einstieg, Provider, Dark-Theme, Auth-Routing
  theme.dart             Dark-Theme + Aiways-Farben (#00CFB4)
  api.dart               HTTP-Client fürs Backend
  app_state.dart         Zustand (Auth-Token, Fahrzeuge) + Persistenz
  models.dart            Vehicle / Telemetry / Command
  widgets/soc_gauge.dart SoC-Ring (CustomPainter)
  screens/               Login, Übersicht, Telemetrie, Steuerung, Einstellungen
reference/               jadx-Decompilat der Original-App (Design-Lookup, LFS)

Stack

Flutter (dark-only), http, provider, fl_chart, shared_preferences, intl.