← 전체 글

StarPlayrX가 돌아왔습니다: 네이티브 Mac 메뉴 막대 앱, Xtra 채널, 그리고 버전 1.1.1

오늘 Agent!는 예전 코드를 Mac용 네이티브 SwiftUI 메뉴 막대 앱으로 바꾸고, 제가 끝내 추가하지 못했던 Xtra 음악 채널의 리버스 엔지니어링을 마무리하고, 서명과 공증을 마친 1.1.1을 반나절도 안 돼 출시했습니다.

StarPlayrX 메뉴 막대 앱이 Classic Rewind Top 100, 채널 1034에서 Journey의 Don't Stop Believin'을 재생하고 있고, 그 아래에 각 채널에서 재생 중인 곡을 보여 주는 검색 가능한 채널 목록이 있습니다.
메뉴 막대에서 Xtra 채널을 재생 중인 StarPlayrX for Mac 1.1.1.

다운로드: StarPlayrX for Mac 1.1.1 (서명 및 공증 완료, Apple silicon과 Intel 지원, macOS 13 Ventura 이상). 웹사이트는 starplayrx.com이고 소스는 GitHub에 있습니다.

오늘 Agent!에게 Mac용 메뉴 막대 버전을 만들게 했더니, 2분 만에 동작하는 버전이 나왔습니다.

2분, 하지만 출발선이 앞서 있었다

공정하게 말하면 Agent!가 맨땅에서 시작한 건 아닙니다. SiriusXM과 직접 통신하는 제 라이브러리 StarPlayrRadioKit를 재사용했거든요. API 계층과 작은 로컬 HLS 스트리밍 서버가 들어 있는 Swift 패키지입니다. 아직 잘 동작하는 모양입니다.

그래서 할 일은 오래된 엔진에 새 앱을 씌우는 것이었습니다. Dock 아이콘 없는 SwiftUI 메뉴 막대 앱, 채널 목록, 현재 재생 정보, 그리고 macOS 키체인에 저장되는 비밀번호. StarPlayrXMac의 첫 커밋은 오늘 오후 12:45에 올라갔습니다.

끝내지 못했던 100개의 Xtra 채널

Xtra 채널은 SiriusXM의 추가 음악 채널로, 번호가 1000번 이상인 채널들입니다. 리버스 엔지니어링을 시작해 놓고는 앱에 추가하는 건 미뤄 두고 있었죠. Agent!는 제가 시작해 둔 걸 보고 몇 분 만에 마저 끝냈습니다.

Xtra 채널은 일반 채널과 동작 방식이 달라서, 주고받는 과정 대부분이 여기서 일어났습니다. 재생 중이 아닌 채널은 다음에 뭘 틀지 보여 주지 않았습니다. 앨범 아트가 새 앨범 전에 이전 앨범을 잠깐 보여 줬습니다. 채널을 틀면 목록에 보이던 곡이 아니라 새로 고른 곡이 재생됐습니다. 하나하나가 짧은 체크포인트였습니다. 제가 본 걸 설명하면 Agent!가 고치고, 저는 다시 해 봤죠.

30분간의 UI 테스트

그다음 30분쯤 앱을 이리저리 눌러 보면서 수정 사항을 검토했는데, 대부분 앱 자체 API 안의 문제였습니다. 스크롤 막대가 콘텐츠에 너무 붙어 있었고, 목록을 지연 로딩하기 전까지는 스크롤이 버벅였고, "xtra"나 "music"으로 검색하면 Xtra 채널이 나와야 했습니다.

메뉴 막대에 표시된 StarPlayrX 채널 목록.
채널, 아티스트, 곡을 검색하세요. 모든 채널에 지금 재생 중인 곡이 표시됩니다.

가장 오래 걸린 건 그냥 음악을 듣는 일, 그리고 새 웹사이트 작업이었습니다.

1.1.1에 들어 있는 것

  • 메뉴 막대(📻)에 상주, Dock 아이콘 없음
  • 채널, 아티스트, 곡 검색
  • 현재 채널과 목록의 모든 채널에서 재생 중인 곡 표시
  • Xtra 채널(1000번 이상), "xtra"나 "music"으로 검색 가능, 채널을 틀면 목록에 보이는 곡이 재생됨
  • 1.1.1은 Xtra 채널로 다시 전환할 때의 문제를 고쳐서, 그때도 목록에 보이는 곡이 재생됨
  • 키보드 미디어 키와 제어 센터에서 재생 및 일시 정지
  • 미국 및 캐나다 채널 라인업
  • VoiceOver를 고려해 제작
  • 유니버설 빌드, Developer ID로 서명하고 Apple이 공증

여전히 활성 상태의 SiriusXM 구독이 필요합니다.

반나절도 안 걸렸다

12:45의 첫 커밋부터 15:41의 1.1.1 커밋까지, git log는 세 시간이 조금 안 되는 시간을 담고 있습니다. 릴리스, 공증, 새 웹사이트까지 더해도 Mac에 네이티브 Mac 버전을 내놓는 데 반나절이 채 안 걸렸습니다. Catalyst 없이, 새 기능 하나와 릴리스 하나까지.

어느 창업자가 눈여겨봐 주면 좋겠지만, 에이전트를 만들 줄 아는 지구상의 모든 사람이 지금 똑같은 일을 하고 있겠죠. 그래도 제 도구는 아주 성숙했다고 느끼고, CLI 버전도 곧 따라잡을 겁니다.

리버스 엔지니어링해 주지 않는 단 하나

재미있는 건, 이제 저는 거의 모든 걸 리버스 엔지니어링할 수 있는데, 저스틴 비버의 "Baby" 가사만큼은 생사가 걸린 상황에서도 내주지 않는다는 겁니다. 그건 직접 채널을 틀고 들어 보셔야 합니다.