72 lines
1.8 KiB
Markdown
72 lines
1.8 KiB
Markdown
# 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:
|
|
|
|
```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
|
|
```
|
|
|
|
## 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
|