很多 App 是为“展示”而做的。
而 RefKick,是我第一次明确地想做一个能在真实场景中被使用的产品。
它是一款为足球裁判设计的比赛管理工具,支持 iOS + watchOS,核心使用场景在 Apple Watch 上。
这篇文章记录了我为什么做它、怎么做的,以及过程中学到的一些东西。
为什么会有 RefKick
如果你看过、甚至参与过足球比赛的执法,就会知道:
裁判在比赛中要同时关注很多事情:
- 比赛时间
- 进球情况
- 黄牌 / 红牌
- 换人、受伤、暂停带来的补时
很多时候,这些都靠记忆 + 临时记录完成,一旦比赛节奏变快,很容易出错。
我就在想一个问题:
能不能把这些最基础、最关键的事情,
用一个抬手就能完成的工具来处理?
Apple Watch 正好是一个非常合适的载体。
产品设计原则:只为“比赛中”服务
在 RefKick 的设计中,我给自己定了几个硬性原则:
1️⃣ 比赛中使用,不打断注意力
- 所有核心操作都必须 一屏完成
- 不做多层导航
- 尽量减少文字,使用直观布局
2️⃣ 操作必须“防误触 + 可纠错”
裁判在比赛中可能会误触,所以我加入了:
- 进球、红黄牌的 撤销(Undo)
- 清晰的视觉反馈和震动反馈
3️⃣ 不做“非必要功能”
RefKick 没有:
- 账号系统
- 云同步
- 社交功能
- 广告
它就是一个纯粹的工具。
核心功能概览
目前 RefKick 支持的主要功能包括:
- 比赛计时(开始 / 暂停 / 恢复)
- 主队 / 客队进球记录
- 黄牌 / 红牌记录(支持撤销)
- 暂停时间计时
- 补时的自动计算与控制
- 比赛过程中修改队伍名称
- iPhone 作为辅助和备份使用
技术实现简述
技术栈
- Swift 5+
- SwiftUI
- watchOS + iOS
- MVVM 架构
为什么选择 SwiftUI
对这个项目来说,SwiftUI 非常合适:
- 快速搭建高对比度界面
- 状态驱动,适合计时器和比赛状态
- iOS 和 watchOS 代码可以高度复用
在 watchOS 上,我特别注意了:
- 按钮尺寸和可点击区域
- 深色模式下的可读性
- 系统 Haptic 的合理使用
App Store 上架过程中的一些坑
上架过程中,最容易踩坑的其实不是代码,而是这些地方:
- App 图标(不能有圆角、不能透明)
- 本地化语言未保存,导致无法上传截图
- 描述中包含 emoji 或特殊字符,被提示“无效字符”
- 推广文本、更新日志用词过于营销化
这些问题本身不难,但如果没有经验,会非常浪费时间。
我对 RefKick 的定位
RefKick 不是一个“做给所有人用”的 App。
它只服务一小部分用户:
- 足球裁判
- 业余 / 校园比赛执法者
- 对比赛管理有实际需求的人
但我相信:
只要在一个真实场景中,把一件事做到可靠,就有价值。
写在最后
这是我第一次完整经历:
- 产品构思
- 设计取舍
- iOS + watchOS 开发
- App Store 上架
- 推广文案与用户视角表达
它不是一个完美的产品,但是一个真的被认真对待的项目。
如果 RefKick 能在某一场比赛中,
帮裁判少分一次心、少出一次错,
那它就已经完成了自己的使命。
RefKick – Football Referee Match Tool
Available on iOS and Apple Watch.
https://apps.apple.com/us/app/refkick/id6758000230

