Adam Bell:做合成器、交互、动画,还有赛车
这位加拿大工程师从 iOS 越狱社区起步:把 Facebook 的 Chat Heads 带到整个 iOS,在没有车的 iPad 上运行 CarPlay。后来 TA 写了手势驱动的动画引擎 Motion,在各大 Swift 大会上讲如何用 Swift 合成声音,如今在 Netflix 做 iOS UI。
- iOS
- 动画
- 交互
- 音频
- 越狱
一句话:X 简介「I make synths, interactions, animations, and hack things 🏎 🇨🇦」,在 Netflix 做 iOS UI。
代表作:Motion(★1.5 千)、Ignition(★324)、Decomposed、Adjustable、SwiftyGestureRecognition;App Albums、Octave、J_NO Chorus、Click Wheel Keyboard。
关键数字:X 关注者约 1.65 万、推文 4.7 万条;GitHub 81 个公开仓库、粉丝 1,242;2018–2023 年做过 9 场大会演讲和播客。
两大爱好:音乐(合成器、黑胶、DJ)和赛车(F1、勒芒、赛道日),都直接变成了 TA 的作品和演讲。
2014 年,CarPlay 只能在少数几款新车上用。Adam Bell 写了一个越狱插件,直接在 iPad 的 SpringBoard 上运行 CarPlay 界面,README 写着:「Negates the need for a "CarPlay supported™" car.」这就是 TA 的风格:先问系统允不允许,再想办法让它允许。
档案速览
Profile
- 身份
- iOS 工程师,专注交互、动画与音频
- 现任
- Netflix,iOS UI
- 所在地
- 美国湾区;来自加拿大
- 教育
- 西安大略大学(Western University),学生时代做了 Meal Plan 等 App
- 早年
- iOS 越狱社区:MessageBox、Ignition、Stride、Spectral、NyanCat
- 技术栈
- Swift、Objective-C、Logos / Theos、Core Animation、SIMD、AudioUnit
- 代表作
- Motion、Decomposed、Adjustable、Albums、Octave
TA 到底在做什么?
Adam 的核心关注是「响应性」:动画要能被手指随时打断、随时接管,界面要像物理世界一样有惯性和弹性。Motion 把这个理念做成了引擎,Adjustable 和 Decomposed 是帮你调出「对的手感」的工具。
TA 的另一条线是音频:用 Swift 写合成器、做 AudioUnit 效果器 J_NO Chorus、把黑胶唱片通过 AirPlay 串流(Tunetable)、做把专辑放到主屏幕的 Albums。
成长与经历
- 2010–2011
第一篇博客
博客第一篇叫
NSLog(@"hello world");,随后写 afc2 与 Finder、在 BlackBerry PlayBook 上跑原生二进制。 - 大学时代
第一批 App
在西安大略大学做了查询校园餐卡余额的 Meal Plan(作为学生项目,与学校无关),还有为 DJ 设计的播放器 Reprise、「比游隼还快」的 Twitter 客户端 Crest、壁纸 App Vivid。
- 2013–2014
越狱黑客
MessageBox 把 Facebook 的 Chat Heads「打破 iOS 沙盒」带到整个系统;Stride 让你画图解锁;Spectral 给 iOS 7 锁屏加模糊专辑封面;NyanCat 把彩虹猫放进 iOS 8 通知中心;Ignition 在 iPad 上运行 CarPlay。
- 2013
ARTPOP
作为 RelativeWave 的一员,参与打造了 Lady Gaga 专辑 ARTPOP 的沉浸式 App。
- 2015–2016
交互原型
Click Wheel Keyboard 用 iPod 转盘打字;Pseudo3DTouch 在没有 3D Touch 的设备上模拟它;SwiftyGestureRecognition 让你在 Playgrounds 里原型化手势;在 try! Swift Tokyo 2016 演讲。
- 2018–2019
用 Swift 合成声音
NSSpain《Synthesizing Synths in Swift》、try! Swift Tokyo《Shaping Sounds in Swift》、Swift Alps《Subtractive Synthesis in Swift》,并上 Swift by Sundell 聊音频。同时用 Swift 给自己写博客系统。
- 2020–2024
Motion 与交互演讲
开源 Motion、Decomposed、SetNeedsDisplay、Adjustable;在 NSSpain、iOS Conf SG、Swift Heroes 讲响应式和有趣的界面;上架 Albums 与 Octave。
- 现在
Netflix
在 Netflix 做 iOS UI。2025 年写下《McLarens and CarPlay》,讲自己从 Lotus Elise 一路开到 McLaren 的赛车爱好。
代表作品详解
Motion ↗
「An animation engine for gesturally-driven user interfaces.」用 SIMD 驱动,完全用 Swift 编写。它让你轻松做出符合物理规律、可打断的动画:弹簧、衰减、关键帧,并且和手势识别器无缝配合。
它解决的问题很具体:系统动画一旦开始就难以被手指「接住」,而 Motion 的每个动画都可以随时被手势接管。
- GitHub
- ★1,491 · ⑂38
Ignition ↗
直接在 iOS 设备的 SpringBoard 上运行 CarPlay 界面,「不需要一辆支持 CarPlay 的车」。README 说它主要为装在仪表台上的 iPad 设计,iPhone 6 Plus「勉强也行」。
- GitHub
- ★324 · ⑂58
Albums ↗
把你喜欢的专辑做成主屏幕小组件,一点就在你常用的流媒体里播放。App 描述说,它想找回一点收藏和播放黑胶唱片的感觉。
- App Store
- ★4.71(28 个评分)
- 最近更新
- 2024-12 · v1.7.1
| 其他作品 | 年份 | 说明 |
|---|---|---|
| Decomposed | 2020 | 让 CATransform3D 和 4×4 矩阵变换好用起来(★265) |
| Adjustable | 2024 | 给任意属性自动加滑杆,不用重新编译就能调动画参数(★76) |
| SetNeedsDisplay | 2020 | 属性变化时自动刷新视图;iOS 15 起 UIKit 已内置同类能力 |
| Octave | 2022 | 视奏练习、音符与和弦查询 |
| J_NO Chorus | 2021 | 致敬 80 年代 BBD 合唱效果的 AudioUnit 插件 |
| Tunetable | 2022 | 把黑胶唱片通过 AirPlay 串流 |
| Click Wheel Keyboard | 2015 | 用 iPod 转盘方式打字的复古键盘 |
| Raid Dad | 2021 | 《命运 2》火力战队信息一览 |
个人网站研究
首页只是一列大写的 App 名字:ALBUMS、OCTAVE、ARTPOP、MEAL PLAN、REPRISE、CREST、VIVID、STRIDE 2、STRIDE、SPECTRAL,每个配一句话。像一张唱片的曲目表。
博客 blog.adambell.ca 的副标题是「building / breaking things」。TA 用 Swift 给自己写博客,并写了四篇《Blogging in Swift》记录从静态生成到 Vapor 再到升级的过程;Talks 页列出 2018–2023 年的全部演讲。
| 维度 | 观察 |
|---|---|
| 结构 | App 列表 + 博客 + 演讲 |
| 技术 | Swift 写的博客系统,Cloudflare |
| 节奏 | 博客更新很少(2011–2025 共 14 篇),演讲和代码更多 |
演讲与文章
- 2025-01-16
- 2023-05-04
- 2022-09-16
- 2019-07-24
- 2019-03-21
- 2018-09-14
For as long as I can remember, I've always been a fan of motorsport.
— Adam Bell,《McLarens and CarPlay》
长处与局限
| 维度 | 长处 | 局限 / 需要留意 |
|---|---|---|
| 交互 | 手势与动画的理解很深,Motion 是代表 | Motion 近两年更新放缓 |
| 黑客精神 | 敢做系统「不允许」的事 | 越狱作品大多已无法在新系统运行 |
| 跨领域 | 音乐、音频与 UI 结合得很自然 | — |
| 分享 | 演讲多、案例好懂 | 博客更新稀少 |
可以从 TA 身上学什么
- 手感需要调:给参数加滑杆,在真机上反复尝试。
- 动画要可打断:手势驱动的界面,才是真正的响应式。
- 越狱精神:去做系统「不允许」的事,往往能发现新交互。
- 把爱好带进代码:合成器和黑胶,成了最受欢迎的演讲和 App。
- 工具会被系统吸收:SetNeedsDisplay 的能力后来进了 UIKit,这说明方向是对的。
推荐先看这三个
去看看 Adam Bell 本人的作品
装上 Albums,把一张最爱的专辑放到主屏幕上。
资料来源
- Adam Bell 的 X 个人资料
- adambell.ca
- Adam Bell:Talks
- McLarens and CarPlay
- GitHub:b3ll
- Albums: Music Shortcuts(App Store)
- AudioKit Pro:Synthesizing Synths in Swift
本页由公开资料整理,可能存在遗漏或过时之处;以本人公开发布的信息为准。