# deskhub Android Ersteller: M_Viper Produktname: deskhub Dieses Verzeichnis ist das vollständige, eigenständig baubare Android-Projekt für deskhub-Mitarbeiter. Die App ist nativ in Kotlin mit Jetpack Compose und Material 3 implementiert; sie enthält weder WebView noch PWA-Wrapper. ## Funktionsumfang - Mitarbeiter-Login mit optionalem TOTP - Keystore-geschützte, widerrufbare API-Anmeldung - Ticketliste mit Volltextsuche sowie Status-, Zuständigkeits- und Abteilungsfiltern - Ticketdetails mit vollständigem Verlauf und internen Kommentaren - Änderung von Status und zuständiger Person - öffentliche Antworten und interne Notizen - Lade-, Leer- und Fehlerzustände sowie serverseitiger Logout Die App fragt beim Login die HTTPS-Adresse der deskhub-Installation ab, beispielsweise `https://support.example.de` oder `https://example.de/deskhub`. Klartext-HTTP ist nicht zugelassen. ## Debug-APK bauen Voraussetzungen: JDK 17 und Android SDK 34. ```powershell Set-Location C:\Users\Viper\Desktop\deskhub\mobile .\gradlew.bat testDebugUnitTest assembleDebug ``` Der Build exportiert die direkt installierbare, mit dem Android-Debugschlüssel signierte APK nach: `artifacts\deskhub-employee-debug.apk` Die normale Gradle-Ausgabe liegt unter `build\outputs\apk\debug\DeskHubMobile-debug.apk`. ## Produktiv signierte Release-APK Der kundeneigene Keystore bleibt außerhalb des Projekts: ```powershell keytool -genkeypair -v -keystore C:\secure\deskhub-release.jks -alias deskhub ` -keyalg RSA -keysize 4096 -validity 10000 ``` Pfad und Zugangsdaten werden nur über Umgebungsvariablen bereitgestellt: ```powershell $env:JAVA_HOME = 'C:\Program Files\Eclipse Adoptium\jdk-17.0.16.8-hotspot' $env:DESKHUB_RELEASE_STORE_FILE = 'C:\secure\deskhub-release.jks' $env:DESKHUB_RELEASE_STORE_PASSWORD = '' $env:DESKHUB_RELEASE_KEY_ALIAS = 'deskhub' $env:DESKHUB_RELEASE_KEY_PASSWORD = '' .\build-release.ps1 ``` Das Skript erzeugt eine minifizierte, produktiv signierte APK unter `artifacts\deskhub-employee-release.apk`. Schlüssel und Passwörter werden nicht eingecheckt. **Play Store:** Schritt-für-Schritt-Anleitung (Keystore mit `new-keystore.ps1`, AAB mit `build-release.ps1`, Play Console) in `VEROEFFENTLICHEN.md`.