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