android version
This commit is contained in:
71
android/README.md
Normal file
71
android/README.md
Normal file
@@ -0,0 +1,71 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user