# YPChat iOS

Native iOS-App (SwiftUI): **P0–P3** wie zuvor; **P4** vollständige UI wie `YpChatRoot.kt`: Login, Tabs (Online, Suche, Posteingang, Verlauf, Konsole, Mehr), Chat mit Smileys/PhotosPicker, Feedback & Partner, **de/en** `Localizable.strings`.

Ausführlicher Gesamtplan: [docs/ios-app-umsetzungsplan.md](../docs/ios-app-umsetzungsplan.md).

## Voraussetzungen

- macOS mit **Xcode 15+**
- Apple-ID / Developer Team für Geräte-Builds (Simulator geht ohne kostenpflichtiges Programm)

## Projekt öffnen

```bash
open ios/YpChat.xcodeproj
```

Xcode lädt das Swift-Paket **socket.io-client-swift** (Produkt `SocketIO`) beim ersten Öffnen automatisch (**File → Packages → Resolve Package Versions** bei Problemen).

1. Target **YpChat** → **Signing & Capabilities**: **Team** wählen (sonst schlägt der Build auf dem Gerät fehl).
2. Scheme **YpChat**, Ziel **iPhone-Simulator** oder echtes Gerät.
3. **Run** (⌘R).

## BASE_URL

Wie unter Android (`ypchat.baseUrl` / Standard `https://www.ypchat.net`):

- `ios/Config/Debug.xcconfig` bzw. `Release.xcconfig`: Variable `BASE_URL`
- Wird per `$(BASE_URL)` in `YpChat/Resources/Info.plist` eingetragen und zur Laufzeit in `AppConfig.baseURL` gelesen.

## Aktueller Funktionsstand

- Start lädt automatisch **GET /api/session** (Pull-to-refresh ebenfalls).
- **Logout:** Socket trennen, **POST /api/logout**, Cookies leeren, Session erneut laden.
- **UI (P4):** `ContentView` → `YpChatRoot` (`UI/YpChatRoot.swift`, `YpChatMoreChatViews.swift`). Steuerung über `services.repository`. Lokalisierung: `Resources/de.lproj` + `en.lproj`.
- **Repository:** unverändert zentral; Timeout, Socket-`reduce`, REST wie Android.

Optional: Feinschliff (Dark Mode, größere Schrift), **P5** bereits durch Bild-Upload in der Chat-Ansicht abgedeckt.

## App-Icon

`AppIcon.appiconset` ist als Platzhalter ohne PNG angelegt. Für Archive/TestFlight in Xcode ein **1024×1024**-Icon hinterlegen oder Asset-Generator nutzen.
