README: Stand nach dem Praxistest
Die Tabelle stand noch auf „Phase 0 steht". Inzwischen laufen Anmeldung, Blättern und Wiedergabe am echten Server — auf iPhone und iPad. Die offenen Punkte sind jetzt einzeln benannt statt pauschal „ungeprüft". Dazu ein Abschnitt über die drei Fehler, die kein Test gefunden hätte, weil sie in Annahmen über fremde Bibliotheken steckten: VLCKits Thread, die nicht verknüpfende Auth-Seite von Plex, und der Download-Task, der auch bei 404 als erfolgreich gilt. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -7,8 +7,8 @@ Der Name ist ein Platzhalter. Siehe [`Flixy/Branding.swift`](Flixy/Branding.swif
|
||||
|
||||
## Stand
|
||||
|
||||
Phase 0 (Fundament) steht. Die App startet, die Navigation ist begehbar, die
|
||||
Inhalte folgen in Phase 1.
|
||||
Alle sechs Phasen sind gebaut. Anmeldung, Blättern und Wiedergabe laufen am
|
||||
echten Server; der Rest ist unterschiedlich weit geprüft.
|
||||
|
||||
Der Fahrplan steht in
|
||||
[`docs/superpowers/specs/2026-09-11-flixy-design.md`](docs/superpowers/specs/2026-09-11-flixy-design.md).
|
||||
@@ -16,15 +16,29 @@ Der Fahrplan steht in
|
||||
| Phase | Inhalt | Stand |
|
||||
|---|---|---|
|
||||
| 0 | Projektgerüst, Design-Tokens, Navigation | ✅ |
|
||||
| 1 | Anmeldung, Bibliothek, DirectPlay | ✅ Anmeldung am Server geprüft, der Rest nicht |
|
||||
| 2 | Transcoding, adaptive Bitrate, Spuren, Sync | ✅ gebaut, ungeprüft |
|
||||
| 3 | Download-Engine und Offline-Wiedergabe | ✅ gebaut, ungeprüft |
|
||||
| 4 | Download-Intelligenz | ✅ gebaut; komprimierte Downloads ungeprüft |
|
||||
| 5 | Feinschliff und Personalisierung | ✅ gebaut, ungeprüft |
|
||||
| 6 | Live-TV mit EPG | ✅ gebaut, an keinem DVR geprüft |
|
||||
| 1 | Anmeldung, Bibliothek, DirectPlay | ✅ am Server geprüft, iPhone und iPad |
|
||||
| 2 | Transcoding, adaptive Bitrate, Spuren, Sync | ✅ Wiedergabe geprüft; Transcoding selbst noch nicht erzwungen |
|
||||
| 3 | Download-Engine und Offline-Wiedergabe | ⚠️ Downloads starten, Offline-Wiedergabe noch nicht bestätigt |
|
||||
| 4 | Download-Intelligenz | ⚠️ komprimierte Downloads ungeprüft |
|
||||
| 5 | Feinschliff und Personalisierung | ✅ gebaut, teilweise geprüft |
|
||||
| 6 | Live-TV mit EPG | ⚠️ Empfänger werden gefunden, Sender noch nicht bestätigt |
|
||||
|
||||
„Ungeprüft" heißt: die Logik ist von Tests abgedeckt, die Oberfläche wurde aber
|
||||
noch nie mit einem echten Bestand gesehen.
|
||||
„Ungeprüft" heißt: die Logik ist von Tests abgedeckt, an einem echten Bestand
|
||||
aber noch nicht gesehen.
|
||||
|
||||
### Was der Praxistest gelehrt hat
|
||||
|
||||
Drei Fehler, die kein Test gefunden hätte, weil sie in Annahmen über fremde
|
||||
Bibliotheken steckten — sie stehen als Warnung im jeweiligen Quelltext:
|
||||
|
||||
- **VLCKit ruft seinen Delegaten vom eigenen Thread**, nicht über die
|
||||
Hauptwarteschlange. `MainActor.assumeIsolated` brach die App beim Drücken
|
||||
auf Play hart ab.
|
||||
- **`app.plex.tv/auth` verknüpft den Code nicht**, wenn man im Browser schon
|
||||
bei Plex angemeldet ist — es springt auf watch.plex.tv weiter. `plex.tv/link`
|
||||
tut es zuverlässig.
|
||||
- **`URLSessionDownloadTask` gilt auch bei 404 als erfolgreich** und legt die
|
||||
Fehlerseite als Datei ab.
|
||||
|
||||
## Aufbau
|
||||
|
||||
@@ -96,10 +110,13 @@ Die Oberfläche wird von Hand im Simulator geprüft.
|
||||
`Content-Length` mitschickt (ohne sie gibt es keinen Fortschrittsbalken und
|
||||
kein Fortsetzen) und ob die Datei durchsuchbar ist. Original bleibt solange
|
||||
Voreinstellung. Siehe `transcodedDownloadURL` in `PlexServer+Playback.swift`.
|
||||
2. **Live-TV.** Der am schlechtesten dokumentierte Teil der Plex-API — es gibt
|
||||
keine offizielle Beschreibung. Die Modelle sind durchgehend nachsichtig
|
||||
gebaut, und ohne eingerichteten Empfänger erklärt die App das, statt einen
|
||||
Fehler zu zeigen.
|
||||
Ein Fehlschlag erscheint immerhin als solcher — die Plausibilitätsprüfung in
|
||||
`DownloadCoordinator.implausibility` verwirft Fehlerseiten und abgebrochene
|
||||
Übertragungen, statt sie als fertig zu verbuchen.
|
||||
2. **Live-TV: die Senderliste.** Dass die Empfänger unter `Dvr` gefunden
|
||||
werden, ist geprüft. Ob `/livetv/dvrs/{id}/channels` die Sender liefert,
|
||||
nicht. Die Ansicht unterscheidet beide Fälle: „Kein Empfänger eingerichtet"
|
||||
gegen „Keine Sender" — daran ist ablesbar, wo es hakt.
|
||||
3. **App-Größe.** Die iOS-Slice von VLCKit ist unstripped 239 MB. Was davon im
|
||||
fertigen Archiv übrig bleibt, ist noch nicht gemessen.
|
||||
4. **Große Dateien im Hintergrund.** Das Verhalten mit einem 40-GB-Remux — vor
|
||||
|
||||
Reference in New Issue
Block a user