Technologie:
Android (8.1 – 13), AndroidX, Kotlin, Java 8/11, Room, View Binding, Jetpack, REST, Retrofit, OkHttp3, Kotlin Coroutines, MVVM Pattern, Espresso, Espresso Test Recorder, Android Integration Tests, JUnit, Gradle, CI/CD (GitLab), GitLab Runner, Scrum, SAFe, Jira, NFC/RFID, Java Card, WebView, ScanBot, Workspace ONE SDK, Sentry, Clean Code, Pair Programming, Postman, Android Profiler
Projekt:
Für die HR-Abteilung eines großen Telekommunikationsdienstleisters wurde eine native Android App in Kotlin für Mitarbeiter-Services entwickelt. Die App besteht aus über 20 einzelnen, teils sehr komplexen Services.
Das Kern-Entwicklerteam hat nach Scrum gearbeitet (mit Jira-Board).
Aufgabe im Vorfeld war die Erstellung der technischen Konzepte in Absprache mit dem Product Owner, den Fachabteilungen, dem Backend und Fremdsystemverantwortlichen (z.B. SAP).
Hauptaufgabe war die Implementierung diverser Features innerhalb der App. Das Frontend wurde nach Designvorgaben umgesetzt. Für REST-Schnittstellen zum Backend gab es technische Spezifikationen. Zum Einsatz kam teilweise Android Jetpack. Als Pattern wurde MVVM verwendet. Der Code wurde gemäß den Prinzipien von Clean Code entwickelt und regelmäßig Code Reviews und Architektur-Besprechungen durchgeführt. Teils wurde alter Java-Code nach Kotlin portiert.
Tests wurden mit Junit und Espresso implementiert. Für die Testautomatisierung wurde ein Testframework auf Basis des Espresso Testrekorders entwickelt, welches die Erstellung und Wartung von UI-Tests stark beschleunigt hat.
Die Kommunikation der App erfolgt größtenteils über ein zentrales Backend im Intranet im Rahmen des Mobile Device Managements (Workspace ONE SDK). Zum Teil wird auch zertifikatsbasiert oder per Web SSO Token auf Intranetseiten zugegriffen, die innerhalb der App angezeigt werden.
Es wurden regelmäßig Performance-Optimierungen durchgeführt (Android Profiler).
Beispiele für Services innerhalb der App sind: Zeiterfassung, Integration des Personalportals, Krankmeldung, Einreichung von Barauslagen, Reisekostenabrechnung, Dokumentenscanner mit ScanBot oder ein elektronisches Fahrtenbuch.
Insbesondere komplexe Services mit Beteiligung teils mehrerer Fachabteilungen im Kontext großer Teams gehörten zu den Aufgaben.
Beispiel für einen solchen komplexen Service ist die vollautomatisierte Beantragung und Freischaltung von Gebäudezutritten. Die physische Gebäudezutrittskarte des Mitarbeiters wird dazu mit dem Smartphone per NFC ausgelesen und digital auf dem Smartphone hinterlegt. Um z.B. für den Besuch einer anderen Lokation den Zugang zum Gebäude mit der physischen Zutrittskarte zu erhalten, wird die Beantragung auf dem Smartphone durchgeführt. Innerhalb weniger Minuten erhält der Mitarbeiter die Bestätigung für die Genehmigung und die Lesegeräte am Gebäudeeingang werden aktualisiert und erlauben nun den Zutritt mit der Zugangskarte des Mitarbeiters. Die Aufgabe umfasste auch die Konzepterstellung um das Smartphone selber als Zutrittskarte nutzen zu können.
Ein weiteres Beispiel ist ein Podcast Player. Im Intranet stehen Podcasts in Form von Video- und Audiodateien zur Verfügung, sowie PDF-Dokumente. Der Mitarbeiter hat filterbare Oberflächen zur Verfügung und kann Channels abonnieren. Es wurden entsprechende Download-Funktionen und Player implementiert. Die Player besitzen zusätzlich ein Widget zum Steuern der Abspielfunktionen außerhalb der App.
Aufgaben:
- Android Developer
- Konzepterstellung (Technical Lead)
- Testautomation
Im Rahmen des hier genannten Projekts gab es zwei große Teilprojekte, die im folgende beschrieben werden.