Hallo zusammen,
wie kürzlich schon erwähnt, möchte ich euch mal wieder etwas auf den aktuellen Stand bringen, was die Entwicklung des CSV anbelangt. Aktuell sitze ich an den neuen Features der Version 0.29. Für den Stable Branch gibt es da noch keinen Release, aber die Play Store Alpha hat diese Version bereits seit einigen Tagen erhalten. Sprich: Der Build hat das Review von Google bestanden und ist im geschlossenen Test verfügbar und ausgerollt.
Darum die Info „WIP“ im Titel. Die Version ist noch in aktiver Entwicklung und nicht für jeden zugänglich.
Wie immer, allgemeine Informationen und eine Übersicht über alle verfügbaren Test-Tracks gibt es hier: Car Stats Viewer | Informationen
Noch mal zur Erinnerung, es gibt zwei primäre Varianten vom Car Stats Viewer. Nur damit ihr wisst, was ich meine wenn ich von den verschiedenen Varianten spreche:
- Legacy: Das, was ihr hier von Anfang an kennt, mit einer von mir entworfenen Ansicht, die auch während der Fahrt sichtbar ist. Entspricht nicht den Google Richtlinien und wird in der Form nie öffentlich im Play Store verfügbar sein. Daher die Einschränkung, dass diese Variante nur über interne Tests mit einer maximalen Zahl von 100 Usern pro Track verteilt werden kann.
- Play Edition: Eine abgewandelte Form der App, die während der Fahrt „Templated Screens“ verwendet, die starke Einschränkungen in der Gestaltungsfreiheit bedeuten. Daher ist die „While Driving Experience“ ein starker Kompromiss. Ziel ist aber ein Einhalten der Google-Richtlinien in den relevanten Punkten, was eine Veröffentlichung für alle im Play Store ermöglicht.
Diese Unterteilung bedeutet aber auch, dass es einige Änderungen und Fortschritte gibt, die nur jeweils eine der beiden Varianten betrifft. Ich versuche das hier möglichst verständlich aufzubereiten, damit ihr etwas besser nachvollziehen könnt, was alles so passiert ist, und teilweise auch warum.
Woran ich in den letzten Monaten am meisten gearbeitet habe, ist ein kompletter Rewrite der UI. Angefangen hat der CSV mal mit einem XML-basierten Layout mit eigenen Activities für jeden Screen. In aller kürze ist das das „klassische“ UI-System von Android. Screens werden dabei vergleichsweise starr in einer XML-Datei definiert, und eine Activity bildet das Gegenstück im Programm-Code. Mit dem neuen UI-System möchte ich die App komplett auf Single-Activity und Jetpack Compose mit MVVM migrieren. Jetpack Compose ist das modernste UI-System für Android, das extrem flexibel ist und vollständig im Programm-Code definiert wird.
Wer mit den Begriffen nichts anfangen kann, braucht sich keine Sorgen machen. Für den Nutzer ist das mehr oder weniger Egal. Wer die Begriffe kennt, weiß, wovon ich rede ![]()
Aktuell benutzt CSV ein Mischmasch aus beidem. Funktioniert, ist aber wenig elegant und später nur sperrig anzupassen oder zu erweitern. Die bisher genutzte Compose-UI werfe ich dabei auch noch mal komplett aus dem Fenster, weil mir mein erster Wurf dann doch immer noch zu unflexibel war
Die ganz neue UI habe ich „Car Compose“ getauft, ist darauf ausgelegt, in möglichst vielen verschiedenen Fahrzeugen flexibel einsetzbar zu sein, und ist von mir als separate Bibliothek zur einfach Wiederverwendbarkeit angelegt.
In der Legacy-0.29 wird CSV vorerst weiter die „Mischmasch-UI“ verwenden. Da ist noch viel zu tun, bis die neue UI komplette Featuregleichheit erreicht hat. Die neue UI ist daher vorerst nur über die Entwickleroptionen zugänglich. Ob sich da bis zum Legacy-Release noch was ändert und dort auch schon komplett Car Compose zum Einsatz kommt, kann ich momentan noch nicht abschätzen.
Anders sieht das bei der Play Edition aus. Zuletzt gab es den großen Stolperstein, dass Google sich daran gestört hat, dass der CSV mehrere Activities eingesetzt hat. Klingt zwar etwas idiotisch, wenn man bedenkt, dass man inzwischen Spiele und Streamingdienste auf dem Auto installieren darf, aber Google hat für IoT-Apps die strikte Regel, dass außer Einstellungen und Login-Screens keine anderen Aktivitäten währen das Auto geparkt ist angeboten werden dürfen. Dabei ist der Trip-Verlauf und die detaillierte Anzeige der Trip-Zusammenfassung unter die Räder geraten. Mit der neuen Car Compose UI verwendet der CSV in der Play Edition jetzt nur noch eine einzige Non-Templated Aktivität. Zumindest für den geschlossenen Test hat das gereicht, um das Review wieder zu bestehen. Technisch gesehen sind Trip-Verlauf und -Details also in die Einstellungen gewandert. Aber, und das ist der in meinen Augen wichtige Punkt: Nutzer der Play Edition haben damit zukünftig im geparkten Fahrzeug wieder den selben Funktionsumfang wie die Nutzer der Legacy-Variante. Der Unterschied ist damit nur noch der Funktionsumfang während der Fahrt und in begrenztem Rahmen die Anordnung im Einstellungsmenü.
Die neue, auf Car Compose basierende UI ist noch nicht ganz fertig, trotzdem möchte ich euch schon mal einen Ausblick darauf geben, was euch insbesondere in den Trip-Details erwarten wird. Hier mal einige Beispiel-Screens der aktuellen Entwicklungsversion aus dem Polestar 2 und Polestar 4:
Der Polestar 4 profitiert natürlich ungemein von seinem horizontal ausgerichtetem Display. Und wenn man Polestar 2 und Polestar 4 gegenüberstellt, dann wird schnell deutlich, wie flexibel sich das neue UI-System einsetzen lässt.
Teilt mir gerne euren Ersteindruck zu der neuen Anordnung mit!
Auf den Screenshots ist auch schon ein Detail zu erkennen, das ein Feature anteasert, das ich auch noch für die 0.29 plane: Der Export von Trips und Ladesessions via E-Mail.
Für die Ladesessions ist das ganze bereits umgesetzt und funktioniert. Die Daten werden dann in Form einer CSV-Datei (Comma Separated List, ich habe mir kein eigenes Dateiformat ausgedacht. Aber passend ist es irgendwie trotzdem
) als E-Mail-Anhang an eine einstellbare Zieladresse gesendet. An dem Export für ganze Trips arbeite ich aktuell noch, das ganze wird aber genauso funktionieren. Die gewohnten Schnittstellen für ABRP und Webhooks sind natürlich weiterhin vorhanden.
Dabei läuft die Kommunikation über einen von mir angemieteten Webserver. Die Daten werden aber zu keinem Zeitpunkt dauerhaft gespeichert. Innerhalb eines API-Aufrufs an meinen Server wird die CSV-Datei erzeugt und verschickt. Danach werden die Daten sofort wieder verworfen.
Die notwendigen APIs laufen dabei „so nebenbei“ auf dem Webserver, den ich ohnehin gemietet habe.
Mehr zu dem Thema folgt dann, wenn es was neues zu erzählen gibt ![]()
Ich gehe aktuell nicht davon aus, dass nach einer Veröffentlichung dieses Features Mehrkosten auf meiner Seite anfallen. Gleiches gilt für die Kartenansicht über Mapbox (Da fallen fur Open Source-Projekte erst Kosten bei mehr als 25.000 aktiven monatlichen Nutzern an, das wird erst mal ne ganze weile langen). Gänzlich auszuschließen ist aber nicht, dass hier später doch mal Kosten für mich entstehen. Aber ich werde auch zukünftig keine „Premium-Features“ anbieten. Die Unterstützung für dieses Projekt wird auch zukünftig zu 100% auf Freiwilligkeit basieren. Ob diese Features dann irgendwann mal in der Zukunft in ihrer Verfügbarkeit limitiert werden müssen, kann ich noch nicht abschätzen.
Meine Überzeugung ist hier nach wie vor: Open Source, Kostenlos und Local First!
Ich freue mich auf eure Gedanken zu den beleuchteten Themen! ![]()









