Álbumes destacados, datos reales de MusicKit y una prueba que mintió al pasar
Deep Cut Atlas muestra “deep cuts”: álbumes del catálogo de artistas que ya están en la biblioteca pero que todavía no se tienen. La siguiente pregunta era obvia: cuando un artista tiene diez álbumes que no se han escuchado, ¿cuál primero?
Apple Music tiene una sección “Essentials” en las páginas de artista, así que asumí que habría un flag correspondiente en la API, algo como isEssential en Album para poder ordenar por ahí. No lo hay. El tipo Artist de MusicKit expone doce vistas de relaciones y ninguna es “essential albums.” Lo que aparece como Essentials en la app Music es en realidad una lista de reproducción de canciones curada (artist.featuredPlaylists), no una señal a nivel de álbum en absoluto.
Lo que sí existe es artist.featuredAlbums, las selecciones editoriales de álbumes de Apple, presentes para los artistas que Apple realmente curó y nil para el resto. Renombré la función “Featured” en vez de “Essential” para que coincidiera con la API en lugar de la etiqueta de la interfaz, agregué un flag isFeatured a LibraryAlbum, y reordené la lista “More from artist” para que los lanzamientos destacados subieran al principio.
Las pruebas en el simulador con datos simulados se veían bien: la insignia aparecía, el orden funcionaba. Pero los datos simulados son ficticios, MusicKit no corre en el simulador de ninguna forma, así que nada en esa pasada tocó la API real de featuredAlbums. La única forma de saber si Apple realmente devuelve datos útiles ahí era un dispositivo físico.
Y sí los devuelve. Consultar el catálogo de Bad Bunny en el dispositivo arrojó 3 de 25 álbumes marcados como destacados: Un Verano Sin Ti, YHLQMDLG, OASIS, todos reales, todas selecciones editoriales sensatas. Buena señal de que la función funciona con datos reales, no solo con mis datos simulados.
Después, la suite de pruebas completa, ejecutada como parte de la misma pasada de verificación en el dispositivo, detectó algo que la corrida en el simulador no había detectado: una prueba de orden preexistente que verificaba un orden estricto de más nuevo a más viejo para una discografía de Khruangbin, donde un álbum, Con Todo El Mundo, había sido marcado como isFeatured: true en los datos simulados como parte de este mismo cambio. La prueba nunca se actualizó para esperarlo primero. Había estado “pasando” solo porque nadie había vuelto a correr la suite desde que cambiaron los datos simulados.
Nada de eso es exótico, es simplemente lo que pasa cuando los datos simulados y su prueba se desalinean en el mismo cambio y nadie corre las pruebas antes de fusionar. El arreglo fue una línea, pero es un recordatorio de que “el código compila y el simulador se ve bien” y “las pruebas realmente pasan” son dos afirmaciones distintas, y solo ejecutar la segunda detecta el desajuste.
Lecturas relacionadas
La lista de reproducción que ya tenía el nombre correcto
Un artefacto del cambio de nombre, una API sin campo de autor, y una prueba en dispositivo que mostró que el error ya se había arreglado solo, cerrado así.
La pestaña Discover que quedó atascada excavando para siempre
Una búsqueda de artista fallida nunca contaba como revisada, así que un artista problemático se reelegía para siempre - hasta que una prueba de varias rondas detectó la segunda protección.
Mi pestaña Discover estaba vacía porque le hice la pregunta equivocada a Apple Music
IDs de biblioteca usados en solicitudes de catálogo: dos síntomas, un solo error, una solución verificada en dispositivo, y el número de 1.610 artistas que obligó a un rediseño.
También te podría ser útil
AdGuard para iOS
Bloqueo de anuncios y rastreadores en todo el sistema en iOS, sin necesidad de un servidor DNS aparte.
Como afiliado de AdGuard, obtengo ingresos por las compras que califican.
Más informacióneSIM Airalo
eSIM de datos local para viajes - sin necesidad de cambiar una SIM física.
Este es mi enlace de referido de Airalo. Obtienes un descuento en tu primer eSIM y yo obtengo crédito de Airalo para el mío.
Más informaciónProton Mail
Correo electrónico cifrado de extremo a extremo, con arquitectura de acceso cero.
Como socio de Proton, obtengo ingresos por las compras que califican de los servicios de privacidad y seguridad de Proton (Pass, Mail, VPN, Drive).
Más información