Upgrade to Pro — share decks privately, control downloads, hide ads and more …

10年欲しかった音楽管理アプリを、AIと一緒に作りはじめた

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on. →
Avatar for log5 log5
September 26, 2026

 10年欲しかった音楽管理アプリを、AIと一緒に作りはじめた

Avatar for log5

log5

September 26, 2026

More Decks by log5

Other Decks in Technology

Transcript

  1. ことのはじまり • 音楽管理は Windows Medi Pl yer, Win mp, iTunes

    などで並行管理 • iPodを使い始めたのがきっかけで iTunes に一本化 a a a a a a https://j .wikipedi .org/wiki/IPod_cl ssic
  2. ことのはじまり • 音楽管理は Windows Medi Pl yer, Win mp, iTunes

    などで並行管理 • iPodを使い始めたのがきっかけで iTunes に一本化 • 隣の芝生が青すぎる a a a a • アプリのデザインを Win mp とかと比べてしまう
  3. ことのはじまり • 音楽管理は Windows Medi Pl yer, Win mp, iTunes

    などで並行管理 • アプリのデザインを Win mp とかと比べてしまう a a a a a • iTunes M tch を契約したあたりからいろいろトラブルが続く
  4. ことのはじまり 塵も積もれば山となる • 音楽管理は Windows Medi Pl yer, Win mp,

    iTunes などで並行管理 • アプリのデザインを Win mp とかと比べてしまう • iTunes M tch を契約したあたりからいろいろトラブルが続く • 例:ライブラリの同期に失敗し、ファイルの拡張子にも異常 • これ自体は iTunes M tch の問題だが… a a a a a a • こうした色々なことが重なって、別のアプリでライブラリを管理することを考えはじめた
  5. 最初に頼んだのは、HTMLのデザイン 使用したツール:Cl ude design → Codex (GPT-5.5 high) 「音楽を管理できて、LEDがあり、スペクトラムも表示でき るソフトを作りたい。」

    「まずHTMLでデザインを作ってほしい。」 a 依頼の要旨。実際のプロンプトの引用ではない(忘れました…そしてなぜか履歴には残っていないという)
  6. HTMLをもとに、macOSアプリを実装 使用したツール:Cl ude design → Codex (GPT-5.5 high) 「このデザインをもとに実装してほしい」 1.

    HTMLでデザインを作る 2. そのデザインをもとに実装を依頼する a 3. 出来上がったアプリを確認する
  7. • ビジュアライザー(スペクトラム)をダミーで作ろうとしていたので阻止 a a ff a ff a a a

    https://fortee.jp/iosdc-j p n-2024/propos l/452c6 0-677 -4 8-9363-c7e8 f278 60
  8. ViewThatFits(in: .horizontal) { "# 第1候補:スライダー群とカーブを横に並べる HStack(spacing: 12) { equalizerControls Divider()

    EqualizerCurveView(settings: player.equalizer) .frame(minWidth: 150, idealWidth: 210, maxWidth: 260) } "# 第2候補:スライダー群だけを横スクロールで表示する ScrollView(.horizontal) { equalizerControls } .scrollIndicators(.hidden) } .padding(.horizontal, 12) .padding(.vertical, 8)
  9. 幅を測って、必要なレイアウトを選ぶ • 修正前: ViewThatFits で候補を測定 • 修正後: onGeometryChange で幅を取得し、条件分岐 •

    フレームレートが改善して、カクつきも起きなくなった 本当にこれが望ましいかは不明だが、まあ、動いてるのでヨシ👉
  10. ビート表示の遅れ Music Underst ndingの解析結果を使い、 再生位置に合わせてLEDにビートなどを表示。 • 症状:ビートドットと再生時刻が遅れて更新される • 主因:共通で参照する PlayerViewModel.currentTime

    の更新が0.5秒ごと • 120 BPMでは1拍も0.5秒。更新タイミングによって、点灯が拍から遅れる a • スペクトラムは別経路で更新している
  11. 今後の課題 • できていること • スペクトラムやVUメーターなど、欲しかった表示の実装 • これから • 大量ファイルの管理には、未検証のところが多い •

    今のライブラリが3000曲くらあるが、全部扱えるのか…. • ミュージックアプリの代替にはまだほど遠い