Files
singlechat/android
Torsten Schulz (notebook) 84f57facba android version
2026-05-12 10:21:24 +02:00
..
2026-05-12 10:21:24 +02:00
2026-05-12 10:21:24 +02:00
2026-05-12 10:21:24 +02:00
2026-05-12 10:21:24 +02:00
2026-05-12 10:21:24 +02:00
2026-05-12 10:21:24 +02:00
2026-05-12 10:21:24 +02:00
2026-05-12 10:21:24 +02:00
2026-05-12 10:21:24 +02:00
2026-05-12 10:21:24 +02:00
2026-05-12 10:21:24 +02:00
2026-05-12 10:21:24 +02:00
2026-05-12 10:21:24 +02:00
2026-05-12 10:21:24 +02:00

YPChat Android

Native Android-App fuer den bestehenden SingleChat/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

Implementierter Durchstich

  • 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
  • Upload-Client fuer /api/upload-image im Repository vorbereitet

Noch Offen

  • Android Photo Picker an uploadImage() anschliessen
  • lokale Logout-Markierung analog Web-Frontend speichern
  • Reconnect-Feinschliff nach App-Background testen
  • Play-Store-Texte, Datenschutz, Impressum und App-Icons finalisieren