StarPlayrX est de retour : une app native pour la barre des menus du Mac, les chaînes Xtra et la version 1.1.1
Aujourd'hui, Agent! a transformé l'ancien code en une app native SwiftUI pour la barre des menus du Mac, a terminé la rétro-ingénierie des chaînes musicales Xtra que je n'avais jamais ajoutées, et a publié une version 1.1.1 signée et notarisée en moins d'une demi-journée.
Téléchargez-la : StarPlayrX pour Mac 1.1.1 (signée et notarisée, Apple silicon et Intel, macOS 13 Ventura ou ultérieur). Le site web est starplayrx.com et le code source est sur GitHub.
Aujourd'hui, j'ai demandé à Agent! de construire une version pour la barre des menus du Mac, et il avait une version fonctionnelle en 2 minutes.
Deux minutes, avec une longueur d'avance
Pour être honnête, Agent! ne partait pas de rien. Il a réutilisé ma bibliothèque qui parle directement à SiriusXM, StarPlayrRadioKit, le package Swift avec la couche API et le petit serveur de streaming HLS local. Apparemment, elle fonctionne encore.
Le travail consistait donc à créer une nouvelle app autour d'un vieux moteur : une app SwiftUI pour la barre des menus sans icône dans le Dock, une liste de chaînes, les infos sur ce qui passe, et le mot de passe stocké dans le trousseau macOS. Le premier commit de StarPlayrXMac est arrivé à 12:45 cet après-midi.
Les 100 chaînes Xtra que je n'ai jamais terminées
Les chaînes Xtra sont les chaînes musicales supplémentaires de SiriusXM, celles numérotées à partir de 1000. J'avais commencé leur rétro-ingénierie et je ne m'étais jamais donné la peine de les ajouter à l'app. Agent! a vu que j'avais commencé et a terminé le travail en quelques minutes de plus.
Les chaînes Xtra ne se comportent pas comme les chaînes classiques, c'est donc là qu'il y a eu le plus d'allers-retours. Les chaînes qui n'étaient pas en lecture n'affichaient pas ce qu'elles allaient passer ensuite. La pochette affichait brièvement l'album précédent avant le nouveau. En se branchant sur une chaîne, on entendait une chanson tout juste choisie au lieu de celle que la liste affichait. Chacun de ces points a été une petite étape : je décrivais ce que je voyais, Agent! corrigeait, et je réessayais.
30 minutes de tests de l'interface
Ensuite, j'ai passé environ 30 minutes à cliquer partout dans l'app et à passer en revue les corrections, surtout dans ses propres API : la barre de défilement était trop collée au contenu, le défilement saccadait jusqu'à ce que la liste se charge à la demande, et les chaînes Xtra devaient apparaître quand on cherche « xtra » ou « music ».
Le plus long, ça a été simplement d'écouter la musique, et de travailler sur un nouveau site web.
Les nouveautés de la 1.1.1
- Vit dans la barre des menus (📻), sans icône dans le Dock
- Recherche de chaînes, d'artistes et de chansons
- Affiche ce qui passe sur la chaîne actuelle et sur toutes les chaînes de la liste
- Chaînes Xtra (à partir de 1000), trouvables avec « xtra » ou « music » ; en se branchant, on entend la chanson affichée dans la liste
- La 1.1.1 corrige le retour sur une chaîne Xtra, pour qu'elle joue là aussi la chanson affichée dans la liste
- Lecture et pause depuis les touches multimédia du clavier et le Centre de contrôle
- Grilles de chaînes des États-Unis et du Canada
- Conçue pour VoiceOver
- Build universelle, signée avec Developer ID et notarisée par Apple
Il vous faut toujours un abonnement SiriusXM actif.
Moins d'une demi-journée
Du premier commit à 12:45 au commit de la 1.1.1 à 15:41, le log git couvre un peu moins de trois heures. Ajoutez la publication, la notarisation et le nouveau site web, et il a quand même fallu moins d'une demi-journée pour apporter une version native au Mac. Pas de Catalyst, une nouvelle fonctionnalité, et une publication.
J'aimerais qu'un fondateur le remarque, mais j'imagine que tous ceux sur la planète qui savent construire un agent font la même chose en ce moment. Malgré tout, j'ai l'impression que mon outil est extrêmement mature, et ses versions CLI vont rattraper leur retard.
La seule chose dont il refuse de faire la rétro-ingénierie
Le plus drôle : je peux maintenant faire la rétro-ingénierie de presque tout, sauf qu'il refuse de lâcher les paroles de « Baby » de Justin Bieber, même dans une situation de vie ou de mort. Pour ça, il faudra vous brancher sur la chaîne et les écouter vous-même.