Files
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
..
2026-08-10 15:03:35 +02:00
2026-08-10 14:03:34 +02:00
2026-08-10 14:03:34 +02:00
2026-08-10 14:03:34 +02:00
2026-08-10 14:03:34 +02:00
2026-08-10 14:03:34 +02:00
2026-08-10 15:03:35 +02:00

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:

gradle wrapper --gradle-version 8.13

Danach:

.\gradlew.bat :app:assembleDebug

Backend-URLs

Debug und Release verwenden standardmaessig:

https://www.ypchat.net

Fuer lokale Tests kann die URL in android/local.properties ueberschrieben werden:

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.:

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:

./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.