Struktur des Repository

Der Quellcode der StuV-Survival ist in einem git-Repo abgelegt. Direkt im git-Repo findet sich der Quellcode. Dort finden sich einige Ordner und einzelne Dateien.

In der .gitignore Datei finden sich Einträge, die bei der Arbeit mit git verschiedene Verzeichnisse von der Synchronisation ausnehmen. Unter anderem finden sich dort Einträge für Einstellungen von Entwicklungsumgebungen und das Build-Verzeichnis. Ein Großteil der Datei ist automatisch generiert worden und deckt die verschiedenen Teile von Java, Android, IntelliJ (Android Studio) und gradle ab. Ebenfalls für git dient die .mailmap Datei. In dieser können für einen Entwickler verschiedene E-Mail-Adressen hinterlegt werden. Diese Datei wird von einigen Anwendungen ausgewertet und ermöglicht es, dass die Anwendungen, Änderungen durch einen Entwickler mit mehreren “git-Identitäten” trotzdem einer Person zugeordnet werden.

In der Datei .gitlab-ci.yml findet sich die Konfiguration, die GitLab für die Continuos Integration (CI) verwendet. Als Basis in der CI wird ein Docker-Container verwendet. Parallelisiert werden in dem Docker-Container Unit-Tests, eine statische Codeanalyse und das Bauen eines Debug-Artifakt durchgeführt. Dazu passend ist im Dockerfile hinterlegt, wie der Container für den CI Prozess aussehen muss. Diese Datei gibt Docker vor, was getan werden muss. Gleichzeitig dient der dabei entstehende Docker-Container auch als Build-Referenz, wenn das Kompilieren der Anwendung Probleme macht.

Die drei Dateien CHANGELOG.md, README.md und LICENSE.txt enthalten Informationen über das Projekt. Das Changelog enthält Informationen über vergangene Versionen und was sich in den verschiedenen Versionen verändert hat. Das Readme enthält dagegen nur allgemeine Informationen über das Projekt und die Funktionen, die durch die App zur Verfügung gestellt werden. Die Lizenz-Informationen sind in der LICENSE.txt enthalten. Genauer gesagt, findet sich in der Datei eine Kopie der Lizenz der Software wieder.

Die beiden Dateien gradlew und gradlew.bat geben den Entwicklern die Möglichkeit, mit dem Buildtool Gradle zu interagieren. Wenn notwendig, werden dafür notwendige Dateien aus dem Internet heruntergeladen. Benötigt wird dazu auf dem Rechner nur eine Java-Laufzeitumgebung. Die Konfiguration der zu verwendenden gradle-Version erfolgt über die Datei gradle-wrapper.properties im Unterordner gradle/wrapper. Das sich im gleichen Verzeichnis befindende gradle-wrapper.jar Archiv ist der Starter für gradle, der durch die beiden Skripte gestartet wird. Dies kann jedoch komplett ohne Administratoren-Rechte erfolgen. Ebenfalls zu gradle gehört die Datei gradle.properties. Diese enthält Einstellungen für die Ausführung von gradle. Die im Repo vorhandene Datei konfiguriert gradle dazu, dass soweit möglich die Kompilierung der Komponenten parallel erfolgen soll. Wenn möglich soll außerdem ein Dämon gestartet werden, da dies die mehrfache Kompilierung erheblich beschleunigt. Zusätzlich wird gradle 2 GB Arbeitsspeicher zugewiesen. Wichtig: Diese Einstellungen haben nur bei der Nutzung von gradle auf der Kommandozeile eine Auswirkung.

Die settings.gradle ermöglicht es, dass sowohl die app- als auch die commons Komponente als eigenständiges gradle-Modul existieren können und trotzdem beide in den Bauprozess eingebunden werden. Als eigentliche Basis-Konfiguration für das Projekt wird jedoch die build.gradle herangezogen. Diese konfiguriert unter anderem die Quellen für andere Abhängigkeiten. Im Falle von StuV-Survival wird das Standard Gradle-Repo und als Maven-Repo JitPack verwendet.

app

Das Verzeichnis app enthält den eigentlichen Code für die App. Es handelt sich um verschiedene Dateien. Unter anderem vertreten sind Java-Quellcode Dateien und XML-Dateien.

commons

Das Verzeichnis commons enthält einige Java-Quellcode Dateien, deren Code nicht nur in der App von Nutzen ist, sondern auch in anderen Projekten verwendet werden kann.