Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
10年欲しかった音楽管理アプリを、AIと一緒に作りはじめた
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
log5
September 26, 2026
Technology
52
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
10年欲しかった音楽管理アプリを、AIと一緒に作りはじめた
#macosnative
https://macos-native.github.io/
log5
September 26, 2026
More Decks by log5
See All by log5
Foundation Modelsの歌声によせて 〜 オンデバイス推論から聞こえてくる自動作曲の可能性
judau
0
210
Summary of the "Migrate to Swift Testing"
judau
0
29
App Clip 5年史: 萌動と停滞のクロニクル
judau
0
3.2k
"Record, replay, and review: UI automation with Xcode" の要約
judau
1
260
懐かしきCaboChaのレシピをもう一度
judau
0
170
App Clipの魔法: iOSデザイン開発の新時代
judau
4
9k
AppCodeのサ終から半年後
judau
1
260
"Meet Swift Testing" & "Go further with Swift Testing" in 5 min
judau
0
390
Aquaの波紋によせて
judau
0
190
Other Decks in Technology
See All in Technology
技術的負債から考える、AI時代のエンジニアリング投資 — ビズリーチの技術的負債と向き合った経験から、変更し続けられるソフトウェアを考える/ technical-debt-con2026
visional_engineering_and_design
4
3.7k
Antigravity SDK for the Java Developer
glaforge
0
190
Claude Codeを「使うほど育つ」AI秘書にするノウハウ
minorun365
PRO
33
31k
Genieを崇めよ
kameitomohiro
0
170
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
16
120k
AIエージェントの権限管理 3: Agentic RAG の Fine grained access control 編
ren8k
0
240
LLMに渡さなかった仕事
nanaism
0
1.4k
【技術的負債conf】事業成長に伴う技術的負債の説明責任とAIによるモニタリング、認知的負債について
i35_267
4
2.1k
ScotSecure West 2026 - Glasgow
raybugg
0
160
「どのログを見ればいい?」 から始めた サーバーレス障害解析
y_waka1
1
140
作って終わりじゃないサーバーレス 〜9年運用する大規模EC物流API基盤の設計・運用のリアル〜
zozotech
PRO
0
490
積み重なった技術負債への挑戦 〜初手としての全社ゴト化〜
techtekt
PRO
0
1.6k
Featured
See All Featured
How to Think Like a Performance Engineer
csswizardry
28
2.8k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
260
The Mindset for Success: Future Career Progression
greggifford
PRO
0
510
Visualization
eitanlees
153
17k
Leo the Paperboy
mayatellez
10
2.3k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
HDC tutorial
michielstock
2
900
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
410
Raft: Consensus for Rubyists
vanstee
142
7.7k
Design in an AI World
tapps
1
330
Transcript
10年欲しかった 音楽管理アプリを、 AIと一緒に作りはじめた log5 macOS native symposium #12
log5 • 分類的にはソフトウェアエンジニアのなかま • 趣味は作曲。オーケストラ向けの楽曲も • 今回が初めてのm cOSアプリ開発 a •
log5.jp 来てね
SimpleMediaPlayer
ことのはじまり • 2000年代のはなし a a a • 音楽管理は Windows Medi
Pl yer, Win mp, iTunes などで並行管理
a a 当時の Windows Medi Pl yer
当時の Win mp (のスキン) a a https://skins.web mp.org/
当時の iTunes a a https://pc.w tch.impress.co.jp/docs/2003/1031/ pple.htm
ことのはじまり • 音楽管理は Windows Medi Pl yer, Win mp, iTunes
などで並行管理 • iPodを使い始めたのがきっかけで iTunes に一本化 a a a a a a https://j .wikipedi .org/wiki/IPod_cl ssic
a a a https://pc.w tch.impress.co.jp/docs/2003/1031/ pple.htm https://skins.web mp.org/
ことのはじまり • 音楽管理は Windows Medi Pl yer, Win mp, iTunes
などで並行管理 • iPodを使い始めたのがきっかけで iTunes に一本化 • 隣の芝生が青すぎる a a a a • アプリのデザインを Win mp とかと比べてしまう
2014年、iTunes M tch 開始 a a a https:// v.w tch.impress.co.jp/docs/review/review/647266.html
ことのはじまり • 音楽管理は Windows Medi Pl yer, Win mp, iTunes
などで並行管理 • アプリのデザインを Win mp とかと比べてしまう a a a a a • iTunes M tch を契約したあたりからいろいろトラブルが続く
ある日、ライブラリから一部の音楽が消えた • アルバムを表示すると番号が飛んでいる • 間違いなくすべてインポートしたはずなのに…
ある日、ライブラリから一部の音楽が消えた
おわかりいただけただろうか
曲名が長すぎて末尾が消えた!!
ことのはじまり 塵も積もれば山となる • 音楽管理は Windows Medi Pl yer, Win mp,
iTunes などで並行管理 • アプリのデザインを Win mp とかと比べてしまう • iTunes M tch を契約したあたりからいろいろトラブルが続く • 例:ライブラリの同期に失敗し、ファイルの拡張子にも異常 • これ自体は iTunes M tch の問題だが… a a a a a a • こうした色々なことが重なって、別のアプリでライブラリを管理することを考えはじめた
せっかく使うなら、見た目も自分好みにしたい a https://skins.web mp.org/
代替を探す…も、見つからず • 自分に合う音楽管理アプリが見つからない • 当時探した範囲ではM cで使いたいものが見つからなかった • Win mpのためにWindowsに戻るのもなぁ… a
a a a • (余談)Win mp はかつてM c版があったらしい(が探していた時はなくなっていた記憶)
(余談) Winamp 復活してた…? a a a a https:// pps. pple.com/jp/
pp/win mp/id1664497725
自作にも踏み出せず • m cOSアプリを自作する知識も、勉強から始める時間も意欲も足りなかった a • あの頃って普通に終電帰りが普通だったし、何なら日曜朝出勤の月曜終電帰宅
10 years later
a a https://open i.com/j -JP/codex/
a a a https://cl ude.com/j /product/cl ude-code
a https://cl ude.com/product/design
今ならもしかすると…
とはいえ、いきなり全部任せるのは不安…
最初に頼んだのは、HTMLのデザイン 使用したツール:Cl ude design → Codex (GPT-5.5 high) 「音楽を管理できて、LEDがあり、スペクトラムも表示でき るソフトを作りたい。」
「まずHTMLでデザインを作ってほしい。」 a 依頼の要旨。実際のプロンプトの引用ではない(忘れました…そしてなぜか履歴には残っていないという)
HTMLをもとに、macOSアプリを実装 使用したツール:Cl ude design → Codex (GPT-5.5 high) 「このデザインをもとに実装してほしい」 1.
HTMLでデザインを作る 2. そのデザインをもとに実装を依頼する a 3. 出来上がったアプリを確認する
None
レビューは大事 実装計画を先に作らせてからGOするのが理想 • SwiftUI と AppKit をうまく組み合わせて作ってはくれているが… • デザインがAppleっぽくないのを作ろうとする(最新モデルは違うかもしれない) •
ビジュアライザー(スペクトラム)をダミーで作ろうとしていたので阻止
• ビジュアライザー(スペクトラム)をダミーで作ろうとしていたので阻止 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
None
None
None
None
デモ:スペクトラムとVUメーター お披露目タイム • 音楽を再生する • スペクトラムの動きを見る • VUメーターの動きを見る
自分の「こうしたい」が 実現する楽しさ • LED部分やスペクトラムは、実装して特に面白かった • 欲しかった見た目を、自分のアプリに入れられる
もう全部AIでいいんじゃないかな (画像略)
もう全部AIでいいんじゃないかな (画像略) 割とそうもいかない
ある日、Codexにイコライザーを実装してほしいと依頼した a a https://j .wikipedi .org/wiki/イコライザー_(音響機器)
できたもの:
NSSlider の isVertical が 0 だとこうなる
None
None
こういうわかりやすいものはまだ良くて…
性能問題 アプリが処理落ちする • AIコーディングエージェントはケアしてくれないことも多い • 最近のF bleやAstr などは違うかもしれないが… a a
• 改善案自体は出してくれるが、効果がないこともしばしば
イコライザーを開くと処理落ちする件 性能問題 • イコライザーを開いた瞬間にアプリの描画がカクカクに • ただ「解決して」と言っても難しそうだった • SwiftUI の処理が怪しかったので、具体的に場所を示して確認してもらった
イコライザーを開くと処理落ちする件 原因 1. ビジュアライザが60fpsで更新 2. ウィンドウの最小サイズ算出でレイアウトを再測定 3. ViewThatFits が候補レイアウトを測定(して応答カーブの表示可否を制御) 4.
非表示候補にある NSSlider 11本を繰り返し生成・破棄 つまり、パネルを開いているだけで、メインスレッドに負荷
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)
「改善して」と依頼 ViewThatFits で候補を測定 ↓ onGeometryChange で幅を取得し、条件分岐
幅を測って、必要なレイアウトを選ぶ • 修正前: ViewThatFits で候補を測定 • 修正後: onGeometryChange で幅を取得し、条件分岐 •
フレームレートが改善して、カクつきも起きなくなった 本当にこれが望ましいかは不明だが、まあ、動いてるのでヨシ👉
ビート表示の遅れ Music Underst ndingの解析結果を使い、 再生位置に合わせてLEDにビートなどを表示。 • 症状:ビートドットと再生時刻が遅れて更新される • 主因:共通で参照する PlayerViewModel.currentTime
の更新が0.5秒ごと • 120 BPMでは1拍も0.5秒。更新タイミングによって、点灯が拍から遅れる a • スペクトラムは別経路で更新している
更新を30 Hzに変更 音と画面の同期は別途確認 • 再生中の時刻更新を0.5秒間隔から30 Hzへ • P ceの表示用データを事前計算 a
• 拍検索を二分探索に変更
人力でチェックもしよう • AIが計測し、原因を調べ、修正する…が理想ではあるが… • 人間が修正後の動作をダブルチェックする • 計測結果と、実際に使った感触を照らし合わせる
細かく指定しないほうがいいことも • UIは当初細かいところまで指示していた • 設定画面のUIなど、AIに自由に作らせたほうがよいケースもあった • おもに自力で言語化や設計が難しい画面とか • 出来上がった画面を見て判断する
こだわる場所と、任せる場所 場面 今回の進め方 欲しい画面のイメージがある HTMLでデザインを作り、実装の参照にする 自力で設計が難しいUI 細かく指定せず、AIの案を見て体感でチェック 不具合を調べる AIが計測・調査・修正し、人間がダブルチェック が理想だけど普通に介入は必要
今後の課題 • できていること • スペクトラムやVUメーターなど、欲しかった表示の実装 • これから • 大量ファイルの管理には、未検証のところが多い •
今のライブラリが3000曲くらあるが、全部扱えるのか…. • ミュージックアプリの代替にはまだほど遠い
楽しい! macOSの、普段使うアプリの見た目を、自分で作れる
まとめ 10年欲しかったものを、自分で育てられる楽しさ • AIコーディングエージェントの普及で、m cOSアプリを自作するハードルは下がった • 誰でも今日からスタートは切れるが、知識がないと遠回りになる a • Apple
プラットフォーム、Swift、ソフトウェア関連技術を知る努力は大事