2020-06-23 Ziele definieren und Einarbeitung in Kotlin

Nachdem wir uns vorgenommen hatten, regelmäßig Artikel zu veröffentlichen, ist im letzten Monat erst einmal nichts mehr passiert.
Deshalb haben wir uns ein festes To-do erstellt, um jede Woche zumindest grob zu posten, was wir gemacht haben, womit wir uns beschäftigen oder woran wir arbeiten – selbst, wenn dabei nur ein paar Sätze rauskommen.
Vielleicht kann man das als eine Art Tagebuch betrachten. Vielleicht wird es für uns mal interessant sein, wenn wir darin lesen, zu sehen, wie wir uns entwickelt haben, mit welchen Problemen wir uns rumgeplagt haben.

Die letzten zwei Tage haben sich jedenfalls darum gedreht, dass wir in den letzten Wochen kaum vorangekommen sind. Also haben wir besprochen, wie wir weiter machen wollen. Wir haben uns überlegt, was wir überhaupt mit der APP erreichen wollen. Welche Probleme gibt es momentan zu bewältigen? In welche Themen müssen wir uns einlesen? Wie wollen wir den Blog weiter nutzen?

Letztendlich haben wir begonnen eine Art Backlog in Form einer To-do-Liste aufzubauen. Kommenden Montag werden wir unser erstes Backlog Refinement abhalten und die ersten Stories erstellen. Unser Ziel ist es bis Ende des Jahres einen Prototyp zu erstellen. Neben einer Login-Funktion soll es für unsere App (Details müssen noch folgen) möglich sein, Benutzergruppen anzulegen, diesen beizutreten und Gruppenziele zu definieren und diese gemeinsam mit anderen Gruppenmitgliedern anzugehen.

Parallel beschäftigen wir uns mit der Einarbeitung in Kotlin, App Architektur und Business Konzepten.

Die Ergebnisse werden wir in diesem Blog veröffentlichen.

Zum Schluss geben wir beide noch einen etwas detaillierten Einblick in die Themen, mit denen wir uns konkret befassen.

Verena
Seit dieser Woche steht unsere MVI-Architektur in Kotlin. Mit Hilfe einer simplen Beispiel-App, die einen Roundtrip zwischen UI, ViewModel und Repository simuliert, habe ich sie ausprobiert. Die Kombination von LiveData und Kotlins Coroutinen wirkt weitaus einfacher als DataBinding und RxKotlin und hat uns erst einmal überzeugt, weshalb wir uns dafür entschieden haben, die Architektur für unsere App zu verwenden. Das Repository ist noch gemockt, wird allerdings der nächste Schritt sein bevor es langsam mit der konkreten Implementierung losgehen kann.

Peter
Ich bin momentan weiter dabei mich in der Androidwelt zurechtzufinden. Speziell geht es auch darum die Apps und was dazu gehört in Kotlin umzusetzen.
Zur Motivation habe ich mir ein kleines Spiel überlegt. Nichts Neues – ein old school Snake -, das ich mit der Android Graphics Library umsetze. Ich könnte was Sinnvolleres entwickeln, aber an Spielen zu arbeiten, hat mich schon immer motiviert. Viele Probleme habe ich auch bereits gelöst. Es gibt eine Möglichkeit eine Snake zu platzieren, einen Rahmen zu setzen, Snake Elemente zum Einsammeln anzuzeigen und über einen simplen Controller kann die Snake gesteuert werden. Die gespawnten Snake Elemente können auch bereits eingesammelt werden. Allerdings fehlt momentan noch die Kollisionserkennung für die Rahmen Elemente.
Generell habe ich dabei viele Builder verwendet. D.h. es gibt einen separaten Builder für das Spielfeld, um die Grenzen festzulegen.
Über einen Snake-Builder kann gesetzt werden, mit wie vielen Elementen die Snake beginnen soll, wo sie platziert werden soll und in welche Richtung sie sich bewegen soll.
Um die Snake zu steuern, kann mit einem Controller-Builder eine Art Steuerkreuz dargestellt werden. Lustigerweise kann ich bspw. auch beliebige Controller hinzufügen, um die gleiche Snake zu steuern. Vielleicht ergeben sich daraus lustige Spielmodus.
Nicht zuletzt gibt es einen Builder, um Snake Elemente, die eingesammelt werden können zu spawnen. Lustige Features dabei sind die Möglichkeit, die Elemente in zufälligen Farben zu erzeugen und anzuzeigen. Und es ist möglich einen Timer zu setzen, um Elemente zu spawnen. Bspw. kann ich sagen: bitte jede Sekunde ein neues Snake Element zum Einsammeln auf das Spielfeld platzieren. Im Screenshot sieht man, wie die momentane Umsetzung aussieht.
Mittlerweile habe ich mich durch das Spiel auch schon ganz gut in Kotlin eingearbeitet. So viel von mir.

Schreibe einen Kommentar