Files
singlechat/android/README.md
Torsten Schulz (local) 86e90c351f
All checks were successful
Deploy SingleChat / deploy (push) Successful in 26s
Android app
2026-08-10 15:03:35 +02:00

98 lines
3.0 KiB
Markdown
Executable File

# YPChat Android
Native Android-App fuer den bestehenden YPChat-Server.
## Stack
- Kotlin
- Jetpack Compose
- Retrofit/OkHttp fuer REST
- Socket.IO Android Client fuer den Chat
- persistente OkHttp `CookieJar`, damit REST und Socket dieselbe `connect.sid`-Session nutzen
## Projekt Oeffnen
Den Ordner `android/` in Android Studio oeffnen. Das Projekt ist auf Android Gradle Plugin `8.13.2`, Gradle `8.13`, JDK 17 und `compileSdk = 36` ausgelegt.
Falls Android Studio keinen Gradle Wrapper erzeugt, kann er in diesem Ordner mit einer lokalen Gradle-Installation nachgezogen werden:
```powershell
gradle wrapper --gradle-version 8.13
```
Danach:
```powershell
.\gradlew.bat :app:assembleDebug
```
## Backend-URLs
Debug und Release verwenden standardmaessig:
```text
https://www.ypchat.net
```
Fuer lokale Tests kann die URL in `android/local.properties` ueberschrieben werden:
```properties
ypchat.baseUrl=http://10.0.2.2:3300
```
`10.0.2.2` zeigt im Android Emulator auf den lokalen Rechner. Auf einem echten Geraet muss stattdessen die LAN-IP des Rechners oder ein Dev-Tunnel verwendet werden, z.B.:
```properties
ypchat.baseUrl=http://192.168.178.42:3300
```
## Implementierte Funktionen
- `GET /api/session`
- Socket.IO Connect mit WebSocket zuerst und Polling-Fallback
- `setSessionId`
- `login`
- `userList`
- `requestConversation`
- Textnachrichten ueber `message`
- `requestOpenConversations`
- `requestHistory`
- `userSearch`
- `blockUser`
- `POST /api/logout`
- Laenderliste im Login ueber `/api/countries`
- Android Photo Picker und Kameraaufnahme
- Bildupload ueber `/api/upload-image` mit 5-MB-Grenze
- lokale Logout-Markierung: Nach einem expliziten Logout wird eine noch
vorhandene Server-Session nicht automatisch wiederhergestellt
- Socket.IO-Reconnect mit erneutem Setzen der Express-Session; beim
Zurueckkehren in die App wird eine fehlende Verbindung erneut aufgebaut
- Videochat mit Kamera- und Mikrofonfreigabe
- Feedback, Partner, FAQ, Regeln, Sicherheit, Datenschutz und Impressum
## Build-Status
Der Debug- und der minifizierte Release-Build werden erfolgreich erzeugt:
```text
./gradlew :app:assembleDebug
./gradlew :app:assembleRelease
```
## Release-Abnahme vor Google Play
Die folgenden Punkte sind keine fehlenden App-Funktionen, sondern muessen vor
dem Veroeffentlichen mit realen Konten und Geraeten abgenommen werden:
1. Login, Chat, Bildversand, Blockieren und Logout auf mindestens zwei echten
Android-Geraeten pruefen.
2. Die App waehrend eines Chats in den Hintergrund legen, wieder oeffnen und
den Socket-Reconnect pruefen.
3. Einen Videoanruf zwischen zwei echten Geraeten inklusive Kamera-, Mikrofon-
und Berechtigungsdialog pruefen.
4. Die Angaben in `DATA_SAFETY_DRAFT.md` mit dem tatsaechlichen
Server-/Loeschprozess abgleichen und die Datenschutzerklaerung in der Play
Console hinterlegen.
5. Store-Name, Kategorie und die vorhandenen Store-Grafiken final pruefen;
die Texte und Checklisten liegen in den weiteren Dateien dieses Ordners.