Aprobado y Aplicado - última revisión: streaming incremental con offset aleatorio
La gestión de playlists pasó por dos generaciones:
AppNavigation, la variedad era baja y la arquitectura no era extensible.Este ADR documenta la solución actual que resuelve el problema de latencia mediante carga incremental con streaming, sin introducir caché local ni nuevas dependencias.
Reemplazar la llamada bloqueante a getMultiPlaylistTracks por un Flow que emite resultados parciales a medida que cada playlist responde. La pantalla de swipe se muestra en cuanto hay 5 tracks disponibles; el resto del mazo crece en segundo plano.
{0, 50, 100, 150}, garantizando variedad entre sesiones sin coste adicional. Si la playlist es más corta que el offset elegido, se reintenta automáticamente con offset = 0.Semaphore(3) a Semaphore(6), que sigue siendo seguro dentro del límite de ~30 req/s de Spotify pero reduce el cuello de botella.preview_url) pasa de un bucle secuencial a 5 peticiones paralelas con Semaphore(5), y se dispara solo para los tracks recién incorporados.GenrePlaylistProvider.kt