用心发布
我们认为,现代移动应用的默认节奏——频繁发布、功能半成品、事事 A/B 测试——让用户疲惫,也侵蚀团队。我们在工作真正完成时才发布,而不是冲刺计划说该发布的时候。有时是一周,有时是一个季度。无论如何,更新上线时都是完整的。
我们开发移动端和桌面端应用以及浏览器扩展。团队小而独立,以远程办公为主。我们只做自己也想装在手机、电脑和浏览器里的东西——仅此而已。
我们认为,现代移动应用的默认节奏——频繁发布、功能半成品、事事 A/B 测试——让用户疲惫,也侵蚀团队。我们在工作真正完成时才发布,而不是冲刺计划说该发布的时候。有时是一周,有时是一个季度。无论如何,更新上线时都是完整的。
我们只收集应用正常运行真正需要的数据。无论是分析、广告还是同步服务器,都会在你安装之前,于应用商店隐私标签和应用的隐私政策中披露。没有隐蔽收集,也不会把行为画像卖给数据经纪商。
我们的应用有些是一次性买断,有些免费并提供可选订阅,有些靠广告支持。无论产品采用哪种模式,都会在应用商店页面上清楚标明——没有隐藏费用,没有意外的自动续订,也没有诱导性设计。
我们刻意保持小规模——小到写代码的人,就是读你那封 Bug 邮件的人。没有分级客服,没有层层上报。只有一个收件箱,我们会认真阅读。
在为别人的公司开发了十年软件后,于 2026 年创立 Zydeno。决定我们发布什么,更重要的是,决定我们不发布什么。他认为大多数应用砍掉一半功能会更好。
掌管每款 Zydeno 应用的视觉语言。字体控,动效极简主义者。转向屏幕设计之前,做过五年印刷与编辑设计——这在排版中一览无余。只要界面还能做得更顺手,就绝不放过一个仅仅“能用”的界面。
转做产品之前,他在广告公司做了六年动态图形。Zydeno 应用中的每一次弹性动画、每一次点按、每一个转场都经他之手。他相信,一条 240 毫秒的缓动曲线,就是工具与玩具之间的差别。
从 iOS 5 起就做原生 iOS 开发。对 SwiftUI 的炒作过敏,写出的 Swift 应用在五年前的 iPhone 上也能一秒内启动。把阅读版本说明当消遣。负责我们每款 iOS 应用的架构,并审查每一个涉及运行时的拉取请求。
写了八年 Swift,此前还写过两年 Objective-C。深耕 Core Data 迁移、后台任务,以及 StackOverflow 都束手无策的 UIKit 角落。担任线上崩溃的二线值班,而且比起开发新功能,更喜欢这份差事。
此前在一家设计工具工作室开发了两年企业级 iOS 组件。合适时用 SwiftUI,不合适时就回到 UIKit。负责我们大部分共享 UI 组件库——每款应用都会复用的那些小巧而有主见的组件,让每次新版本从第一分钟起就倍感熟悉。
Kotlin 至上主义者。比起功能数量,更在意冷启动时间和耗电。把每一 KB 都当房租一样精打细算。负责 Android 移植,最近还负责 Windows 版本的构建——仅限值得做的应用。
用户永远看不到的一切:同步、离线优先的存储,以及那些枯燥却让应用显得神奇的部分。独自维护我们的基础设施,开发我们的 Chrome、Edge 和 Firefox 扩展,而且乐在其中。
每个版本发布前最后经手的人。负责 QA 测试,坚守说“还不行”的原则。维护回归测试套件,让团队快速推进,又不会弄坏用户主屏幕上已有的应用。
我们招人很慢。我们经常争论。但我们照样发布。
草图、用户流程,以及关于这个东西到底该不该存在的直言争论。能挺过这一阶段的想法,才配被做出来。
真实设备上跑真实代码。没有样稿,没有假数据。如果此时体验不好,发布时也不会好——要么在这里修好,要么直接放弃。
微交互、文案修改、无障碍检查——那 200 个小细节,正是能用的软件与好软件的分别。然后,它才正式发布。
每一份 Bug 报告和功能建议都会被阅读,但不是每一个都会被实现。被采纳的会进入下一个开发周期——而不是下一个紧急补丁。