手记 预告

预先收藏:Yoin

Spotoolfy 之后是 Yoin。半年多过去,它终于可以见第一批听众了。它从哪儿来,里面都有什么。

在 Spotoolfy 之后,我很快就遇到了瓶颈。Flutter 对于 Android 平台并不算友好,比如预测性返回的适配、最新的 Material Design 组件都需要从零开始自己写。面对 Android 这个陌生领域,刚开始我带着些复杂的情绪慢慢摸索,但后来却越来越享受 Compose 开发。

全身心投入半年多后,Yoin 终于以面向公众的姿势问世了。因为想把体验做得更扎实,目前我打算先找一些小范围的用户进行测试(社交媒体动态、熟人,以及之前 Spotoolfy Discord 里的朋友)。


Yoin 的名字取自日语中的「余韻」(よいん),发音和中文的「余音」很近。

这个名字让我想起每次听完歌、余音绕梁时的状态。我们总是不自觉地把歌曲和自己的人生联系在一起,不断赋予它新的意义——哪怕有时已经超脱了创作者最初的范畴。我认为这也是音乐在生命中如此独特、因人而异的原因。

在 UI 设计上,我从 Material Design 3 Expressive 中汲取了灵感,但也融入了许多自己的考量:

  • 色彩与质感:MD3 Expressive 会提取两个非常契合的色彩种子,比起之前莫兰迪色系低饱和度的调色盘,它对音乐 App 的视觉塑造要好得多。此外我认真适配了新组件,并在几乎所有交互上都使用了弹性弹簧动画,同时用 MD3 的 Shapes 辅助排版与装饰。
  • Now Playing 与手势:播放页增加了一个可随时隐藏的评分条来平衡纵向空间;上下展开/回收的菜单与底部的 Split Button 也做了更成熟的区分。跨越不同页面与窗口,底部的 Now Playing 区块会根据当前所处位置(手机、平板、Album 首页或分栏视图)动态调整形态,配合预测性返回手势,每一次进出都非常连贯无缝。
  • Widget 首页与响应式:首页做成了模块化 Widget 形式,可以近乎自由地在桌面排布板块并调整大小;响应式适配也是一等公民,从 Googlebook、三星 Z Fold 8 外屏、索尼 Xperia,到折叠屏 Stand 模式和横屏状态都做了适配。

在播放与数据方面,除了 Spotify,还尽力适配了 Apple Music 和 Subsonic。针对之前 Spotoolfy 令人诟病的体验,我重新设计了 Landing UX,通过悬浮窗引导和一键复制避免在 App 和 Spotify Dashboard 之间来回切换,并支持快捷切换账号。数据上则支持使用 Google Drive 进行多设备云同步。

在 Yoin 里,我也整理了许多在 Spotoolfy 中对听歌体验的想象的雏形,让它们更加规整,富有延展性与结构化:

  • 歌曲背景与 Gemini:在 About 页面以歌曲轨道为单位,采用 Gemini BYOK 与 Google AI Grounding 进行快捷检索,提问会整理成规整的 QA 形式沉淀在页面中,不会丢失上下文。
  • 时间戳笔记:你可以记录对当前配乐、歌词或编曲的感受,甚至记录应援词;笔记会在播放页跟随时间戳和歌词一起滚动。
  • 手账与阁楼:在专辑页向左滑动会进入手账页,集中查看该专辑的所有问答、笔记和播放次数;认真打过分或记下不少笔记的专辑会变成一份「回忆」收纳进 Yoin 的「阁楼」中,在首页向下滑动即可回顾 Memories,也会同步在桌面小组件和「Jump Back In」模块中。

我们在 Yoin 上倾注了许多思考与心血,旨在提供一种经典且令人耳目一新的音乐播放用户体验,而不仅仅是复刻某款音乐 App 的播放界面。Yoin 专为 Android 打造,近日会公布更多细节。

继续阅读

封闭测试

加入封闭测试。

Yoin 0.5 正在 Google Play 上封闭测试,加入大约需要两分钟。