Normalizza il periodo nel backend quando l'app invia "Q1" via cable, così advance_period aggiorna regia e overlay; rimuove i controlli cronometro dalla regia e rende più tollerante il decode iOS al resume sessione. Co-authored-by: Cursor <cursoragent@cursor.com>
Match Live TV — app Android nativa
Implementazione da zero in Kotlin + Jetpack Compose.
Stack
- UI: Jetpack Compose, Navigation
- Rete: Retrofit + Moshi + OkHttp
- Auth: DataStore
- Streaming: RootEncoder (RTMP) con motore dedicato
LiveBroadcastEngine
Struttura
app/src/main/kotlin/com/matchlivetv/match_live_tv/
core/ — config, token store
data/ — API, repository, DI container
domain/ — modelli
streaming/ — preview GL, motore RTMP, foreground service
ui/ — schermate Compose
Build APK produzione
./scripts/build_native_android_apk_prod.sh
adb install -r native/android/app/build/outputs/apk/release/app-release.apk
API default: https://www.matchlivetv.it (override con -PAPI_BASE_URL=...).
Roadmap
- Login, lista partite, avvio diretta, preview + RTMP
- Wizard completo (rete, piattaforma YouTube, tabellone)
- WebSocket tabellone / regia
- Replay solo da sito web (non in app)
- iOS nativo — da sviluppare su Mac in
native/ios/(SwiftUI)
iOS (prossimo passo su Mac)
Il backend REST/WebSocket è condiviso. Su Mac creeremo native/ios/ con SwiftUI e AVFoundation/RTMP equivalente, riusando gli stessi contratti API del backend.