StarPlayrX ha vuelto: una app nativa para la barra de menús del Mac, canales Xtra y la versión 1.1.1
Hoy Agent! convirtió el código antiguo en una app nativa en SwiftUI para la barra de menús del Mac, terminó la ingeniería inversa de los canales de música Xtra que nunca llegué a añadir y publicó una versión 1.1.1 firmada y notarizada en menos de medio día.
Descárgala: StarPlayrX para Mac 1.1.1 (firmada y notarizada, Apple silicon e Intel, macOS 13 Ventura o posterior). La web es starplayrx.com y el código fuente está en GitHub.
Hoy le pedí a Agent! que construyera una versión para la barra de menús del Mac, y en 2 minutos tenía una versión que funcionaba.
Dos minutos, con ventaja
Para ser justos, Agent! no partía de cero. Reutilizó mi biblioteca que habla directamente con SiriusXM, StarPlayrRadioKit, el paquete de Swift con la capa de la API y el pequeño servidor local de streaming HLS. Por lo visto todavía funciona.
Así que el trabajo era una app nueva alrededor de un motor viejo: una app en SwiftUI para la barra de menús sin icono en el Dock, una lista de canales, información de lo que está sonando y la contraseña guardada en el Llavero de macOS. El primer commit de StarPlayrXMac entró a las 12:45 de esta tarde.
Los 100 canales Xtra que nunca terminé
Los canales Xtra son los canales de música extra de SiriusXM, los que van del 1000 en adelante. Había empezado a hacerles ingeniería inversa y nunca me molesté en añadirlos a la app. Agent! vio que lo había empezado y lo terminó en unos minutos más.
Los canales Xtra no se comportan como los normales, así que aquí es donde hubo más idas y venidas. Los canales que no estaban sonando no mostraban lo que iban a poner a continuación. La carátula mostraba un instante el álbum anterior antes del nuevo. Al sintonizar sonaba una canción recién elegida en lugar de la que la lista te estaba mostrando. Cada una de esas cosas fue un punto de control corto: yo describía lo que veía, Agent! lo arreglaba y yo lo volvía a probar.
30 minutos de pruebas de interfaz
Luego pasé unos 30 minutos haciendo clic por la app y repasando arreglos, sobre todo dentro de sus propias APIs: la barra de desplazamiento estaba demasiado pegada al contenido, el desplazamiento iba a tirones hasta que la lista se cargó de forma diferida, y los canales Xtra tenían que aparecer al buscar "xtra" o "music".
Lo que más tiempo llevó fue simplemente escuchar la música, y trabajar en una web nueva.
Qué trae la 1.1.1
- Vive en la barra de menús (📻), sin icono en el Dock
- Busca canales, artistas y canciones
- Muestra lo que suena en el canal actual y en todos los canales de la lista
- Canales Xtra (del 1000 en adelante), que se encuentran buscando "xtra" o "music"; al sintonizar suena la canción que muestra la lista
- La 1.1.1 corrige el cambio de vuelta a un canal Xtra, para que también ahí suene la canción que muestra la lista
- Reproducir y pausar desde las teclas multimedia del teclado y el Centro de control
- Parrillas de canales de EE. UU. y Canadá
- Pensada para VoiceOver
- Compilación universal, firmada con Developer ID y notarizada por Apple
Sigues necesitando una suscripción activa a SiriusXM.
Menos de medio día
Desde el primer commit a las 12:45 hasta el commit de la 1.1.1 a las 15:41, el log de git abarca algo menos de tres horas. Si le sumas la publicación, la notarización y la web nueva, aun así fue menos de medio día para traer una versión nativa al Mac. Sin Catalyst, con una función nueva y con una publicación.
Ojalá algún fundador se fijara, pero me imagino que todo el que en el planeta sabe construir un agente está haciendo lo mismo ahora mismo. Aun así, siento que mi herramienta está extremadamente madura, y sus versiones CLI se pondrán al día.
Lo único a lo que no le hace ingeniería inversa
Lo gracioso: ahora puedo hacerle ingeniería inversa a casi cualquier cosa, excepto que no suelta la letra de "Baby" de Justin Bieber, ni siquiera en una situación de vida o muerte. Para eso tendrás que sintonizar y escucharla tú mismo.