2021-01-19 Happy New Year

Wir waren zum Jahreswechsel etwas nachlässig mit unseren Blogeinträgen und bevor es noch schwieriger wird alles zusammen zu bekommen was wir in den letzten Wochen geschafft haben, hier ein Schnelldurchlauf. An der UI hat sich geringfügig etwas verändert, aber hauptsächlich haben wir uns mit dem Aufbau des UI-Frameworks und Refactoring beschäftigt.

Wir haben ein BaseTabStripFragment eingeführt, mit dessen Hilfe wir einen Tab-Strip anzeigen können und welches als Wrapper dient und das sich z.B. um die Anzeige des Titels in der Toolbar kümmert, damit dies nicht auf jedem Tab-Fragment einzeln implementiert werden muss. Den Tab-Strip haben wir implementiert, um die Details zu einem Team in Overview, Achievements und Member zu trennen. Derzeit sind die einzelnen Tabs noch so gut wie leer, aber sobald wir hier etwas Content haben, werden wir die neue UI präsentieren.

Auch unser Backend haben wir um User und Team-Member erweitert und sichergestellt, dass ein User, der ein Team anlegt, diesem auch als Member zugewiesen wird. Außerdem haben wir bei der Gelegenheit etwas Zeit in das Error Handling gesteckt. Wir geben sprechende Nachrichten zurück und trennen unsere Request-Result mittels Codes nach z.B. 404-Bad Request-Fehlern, wenn ein Methodenaufruf unerwartet schief geht und 405-Method not allowed-Fehler für z.B. Fehlern bei der Validierung. Der Aufbau unseres Results hat sich durch das Einführen eines ResultBuilders deutlich vereinfacht. Durch die Codes können wir uns jetzt auch App-seitig je nach Fehler an einer zentralen Stelle im ServiceExecutor darum kümmern und bekommen bei App-Abbrüchen nun viel sprechendere Nachrichten. Für uns ein absolutes Plus.

Diese Woche haben wir unsere ServiceExecutor-Calls in extra Services gewrappt, um die Aufrufe einfacher zu machen. In diesem Zuge haben wir gleich eine saubere Trennung zwischen den DTOs und DOs vorgenommen. Die DTOs werden nun ausschließlich für die Webschnittstelle verwendet  und haben jeweils eine to<Model-Klasse>-Methode, um die Werte in unsere DOs zu mappen und mit diesen weiterzuarbeiten.

Da wir mit Dagger bisher nicht weitergekommen sind, wir aber gerne in Zukunft unsere Services zu Testzwecken mocken möchten, haben wir einen Service Provider eingeführt.

Wir hatten auch eine UI zum Joinen eines Teams angelegt und dachten heute, wir könnten beim Klick auf den Hinzufügen-Button „mal eben“ eine Snackbar anzeigen. Die Diskussionen und Implementierung sind wie immer etwas „ausgeartet“ 😛 Dafür handelt unser Framework nun so mal wieder so gut wie alles und wir können Snackbars mittels ViewState einblenden und sie werden automatisch wieder ausgeblendet. Moment..Ausblenden macht die Snackbar doch selbst? Aber sie gibt uns darüber keine Rückmeldung. Das bedeutet, dass wir unseren ViewState nicht aktualisieren können und somit die UI und der ViewState auseinander laufen würden. Deshalb haben wir uns dafür entschieden, uns selbst um die Anzeige der Snackbar zu kümmern, um z.B. beim Rotieren genau den gleichen Zustand wiederherzustellen.

Schreibe einen Kommentar