StarPlayrX ist zurück: eine native Mac-App für die Menüleiste, Xtra-Sender und Version 1.1.1
Heute hat Agent! den alten Code in eine native SwiftUI-App für die Menüleiste des Mac verwandelt, das Reverse Engineering für die Xtra-Musiksender abgeschlossen, die ich nie hinzugefügt hatte, und in weniger als einem halben Tag eine signierte, notarisierte Version 1.1.1 veröffentlicht.
Zum Download: StarPlayrX für Mac 1.1.1 (signiert und notarisiert, Apple silicon und Intel, macOS 13 Ventura oder neuer). Die Website ist starplayrx.com, und der Quellcode liegt auf GitHub.
Heute habe ich Agent! eine Menüleisten-Version für den Mac bauen lassen, und nach 2 Minuten hatte es eine funktionierende Version.
Zwei Minuten, mit Vorsprung
Fairerweise muss man sagen, dass Agent! nicht bei null angefangen hat. Es hat meine Bibliothek wiederverwendet, die direkt mit SiriusXM spricht, StarPlayrRadioKit, das Swift-Paket mit der API-Schicht und dem kleinen lokalen HLS-Streaming-Server. Offenbar funktioniert sie immer noch.
Die Aufgabe war also eine neue App um eine alte Engine herum: eine SwiftUI-App für die Menüleiste ohne Dock-Symbol, eine Senderliste, Infos zum aktuellen Titel und das Passwort im macOS-Schlüsselbund. Der erste Commit von StarPlayrXMac kam heute Nachmittag um 12:45.
Die 100 Xtra-Sender, die ich nie fertig gemacht habe
Die Xtra-Sender sind die zusätzlichen Musiksender von SiriusXM, die mit den Nummern ab 1000. Ich hatte angefangen, sie per Reverse Engineering zu entschlüsseln, und mich nie darum gekümmert, sie in die App einzubauen. Agent! hat gesehen, dass ich angefangen hatte, und es in ein paar weiteren Minuten fertig gemacht.
Xtra-Sender verhalten sich nicht wie die normalen, deshalb gab es hier das meiste Hin und Her. Sender, die gerade nicht liefen, zeigten nicht an, was als Nächstes kommt. Das Cover blitzte kurz mit dem vorherigen Album auf, bevor das neue kam. Beim Einschalten lief ein frisch ausgewählter Song statt dem, den die Liste gerade anzeigte. Jeder dieser Punkte war ein kurzer Checkpoint: Ich habe beschrieben, was ich sah, Agent! hat es behoben, und ich habe es noch einmal ausprobiert.
30 Minuten UI-Tests
Danach habe ich etwa 30 Minuten durch die App geklickt und Korrekturen durchgesehen, meistens in ihren eigenen APIs: Die Scrollleiste saß zu nah am Inhalt, das Scrollen ruckelte, bis die Liste verzögert geladen wurde, und Xtra-Sender mussten auftauchen, wenn man nach „xtra“ oder „music“ sucht.
Am längsten hat es gedauert, einfach die Musik zu hören und an einer neuen Website zu arbeiten.
Was in 1.1.1 steckt
- Lebt in der Menüleiste (📻), kein Dock-Symbol
- Sender, Künstler und Songs durchsuchen
- Zeigt, was auf dem aktuellen Sender und auf jedem Sender in der Liste läuft
- Xtra-Sender (ab 1000), auffindbar mit „xtra“ oder „music“; beim Einschalten läuft der Song, den die Liste anzeigt
- 1.1.1 behebt das Zurückwechseln zu einem Xtra-Sender, sodass auch dort der Song läuft, den die Liste anzeigt
- Wiedergabe und Pause über die Medientasten der Tastatur und das Kontrollzentrum
- Senderangebote für die USA und Kanada
- Für VoiceOver gebaut
- Universal-Build, mit Developer ID signiert und von Apple notarisiert
Ein aktives SiriusXM-Abo braucht man weiterhin.
Weniger als ein halber Tag
Vom ersten Commit um 12:45 bis zum 1.1.1-Commit um 15:41 umfasst das Git-Log knapp drei Stunden. Rechnet man das Release, die Notarisierung und die neue Website dazu, war es trotzdem weniger als ein halber Tag, um eine native Mac-Version auf den Mac zu bringen. Kein Catalyst, ein neues Feature und ein Release.
Ich wünschte, ein Gründer würde darauf aufmerksam werden, aber ich kann mir vorstellen, dass gerade jeder auf dem Planeten, der einen Agenten bauen kann, dasselbe macht. Trotzdem habe ich das Gefühl, dass mein Tool extrem ausgereift ist, und seine CLI-Versionen werden aufholen.
Das Einzige, was es nicht per Reverse Engineering knackt
Das Lustige daran: Ich kann jetzt fast alles per Reverse Engineering knacken, nur rückt es den Text von Justin Biebers „Baby“ nicht heraus, nicht einmal in einer Situation auf Leben und Tod. Den musst du schon selbst einschalten und dir anhören.