Prüfungsleistung - LinusKorihs/VR-AR---Mobile GitHub Wiki

1. Einleitung

Im Rahmen des Moduls „VR, AR & Mobile Development“ bestand die Prüfung Leistung aus dem Entwickeln einer Android App, die zufällige Nutzerdaten über eine Web-API zieht, lokal speichert und durch QR-Codes und einem AR-Scanner interagier bar macht. Ziel war es, eine möglichst praxistaugliche Anwendung zu erschaffen, welches die Inhalte Datenbanken, mobiles entwickeln und Augmented Reality aus dem Unterricht in eine App vereint.

2. Umgesetzte Funktionen

Die Pflichtanforderungen bestand aus dem Erstellen von drei „Screens“, welches die Kontakte, Kontaktinformationen und der AR-Kamera bestehen sollten.

Im ersten Screen, der Kontakte, sieht man alle aus der API gezogenen Kontakte mit ihren Vor- und Nachnamen sowie einem Bild. Beim Draufklicken auf einer der Kontakte kommt man zum zweiten, individuellen Screen, den Kontaktinformationen der angeklickten Person. Neben den bisher bekannten Namen und Bild bekommt man nun auch die E-Mail, Adresse, Hausnummer, Postleitzahl und Stadt der Person. Beim Draufklicken des QR-Knopfs wird ein QR-Code erstellt, welches zum Kontakt mit den Informationen führt.

Beim dritten Screen kommt man zur AR-Kamera, welche die QR-Codes über die jeweilige Kamera scannen und aufrufen kann. Der vierte, Bonus-Screen enthält mehrere mögliche Einstellungen. Neben dem Löschen der Datenbank und dem erneuten Ziehen von zufälligen Nutzerdaten über die API gibt es die Möglichkeit die Kontakte lokal zu exportieren.

Weitere Bonusfunktionen, die zeitlich nicht mehr implementiert werden konnten, sind das manuelle Bearbeiten und Hinzufügen von Kontakten sowie weitere, unterstützte API-Formate.

3. Design Entscheidungen

Während der Entwicklung gab es mehrere technische und gestalterische Entscheidungen zu treffen, um eine stabile und modulare App zu bauen:

Um eine modernere UI zu entwickeln, wurde sich für Jetpack Compose statt für XML entschieden. Durch Compose lassen sich leichter State und LiveData kombinieren und bietet eine weniger fehleranfällige UI als XML.

Als lokale Datenbank war es wichtig eine gute Integration mit Kotlin zu beinhalten. Da dies zudem mit einer guten Kompatibilität mit Compose kam, war Room als lokale Datenbank der logische Schritt. Hierbei wurde die Struktur bewusst einfach gehalten, um Zeit und Energie an anderen Stellen einsetzen zu können.

Als klare Identifikationsmedium wurde sich frühzeitig für QR-Codes entschieden, da neben der einfachen Generierung auch die AR-Kamera gut darauf ausgelegt wurde. QR-Codes werden in der Praxis häufig genutzt, da sie einfach und kompakt zu scannen sind.

Bei der AR-Kamera wurde dabei auf 3D-Overlays verzichtet, um die Struktur und Einfachheit des Projekts nicht zu gefährden.

4. Fazit

Die App erfüllt alle Pflichtanforderungen der Prüfungsleistung und integriert darüber hinaus mehrere Zusatz Funktionen. Insgesamt konnte die App in einem praxisnahen, realistischen Szenario umgesetzt werden. Basierend auf den bisherigen Entwicklungen könnte man weitere Funktionen wie Kontaktbearbeitung oder visuelle Augmented Reality Overlays implementieren.