Estatus

Aprobado y Aplicado - última revisión: streaming incremental con offset aleatorio


Contexto

La gestión de playlists pasó por dos generaciones:

  1. Primera generación: un género mapeaba a una sola playlist. El acoplamiento estaba en AppNavigation, la variedad era baja y la arquitectura no era extensible.
  2. Segunda generación: un género mapea múltiples playlists. La carga es paralela, pero bloqueaba la UI hasta tener los 50 tracks completos (3–10+ s en condiciones reales) porque paginaba cada playlist al completo antes de renderizar nada.

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.


Decisión

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.

Principios del diseño


Componentes clave

GenrePlaylistProvider.kt