MatchMate
从浏览器里的原型,到正在接受 App Store 审核的应用,并围绕它打造了品牌、官网和后台管理系统。
- 问题
- 业余足球靠混乱的群聊来组织。
- 我的角色
- 联合创始人。负责产品方向、品牌、设计、开发和内容。
- 方法
- 把范围缩小到一项运动,先做成浏览器原型来验证,再在真实后端上重建,并进行安全审查。
- 交付内容
- iOS 与 Android 应用、设计系统、官网、Instagram 内容,以及 Founder HQ。
- 成果
- 应用已于 2026 年 10 月 21 日重新提交 Apple。官网已上线。上线前 Reels 观看量超过 20 万。
组织一场球赛,不该比踢球本身还难。
业余足球全靠群聊。有人提议一个时间,回复散落在不同的对话里,有人前一晚临时退出,最后谁也说不清到底谁会来、球场在哪里。
MatchMate 把整场比赛放在一个地方:找到附近的比赛、报名加入、看看还有谁参加,组织者也不必再一个个去催人。
最有价值的工作,是决定哪些不做。
最初的计划很宽泛:所有运动、场地预订、支付、社交动态。要做出一个真正能用的版本,就必须有意识地做减法。
先做足球
设计系统原本按六项运动来写。第一版只上线一项,确保每个界面都能认真开发和测试。
应用内不收款
在应用内收款会带来监管、应用商店规则和风险。球员们在应用外自行结算,就像他们一直以来的做法。
少要数据
Apple 询问为什么注册时要填写出生日期和城市。这两项对踢球都不是必需的,于是全部删除。
城市运动文化,加上高端产品的精致质感。
品牌方向融合了两种气质:Urban Premium 带来结构感与沉稳,Street Editorial 带来个性。默认使用深色模式,浅色模式作为备选。我把这一切写成了设计系统,让每个界面、帖子和页面都遵循同一套规则。
默认深色模式 · 绿色用于操作 · 暖橙色用于社交时刻
背景#0B0F0C
表面#1E2B22
强调色#66D17A
暖色#FF6A2A
大胆、有表现力,但不杂乱;高端、有条理,但不沉闷。
千篇一律的创业公司模板、花哨的游戏风界面,以及未经授权的俱乐部官方队徽。
每个界面只有一个绿色主操作。暖橙色只用于社交亮点。
快速、流畅、克制。只在关键时刻加强。
围绕一场比赛的完整过程来设计。
应用不是一张功能清单,而是跟随真实发生的过程:有人找到一场比赛,组织者凑齐人数,大家一起上场,而且即使和还不认识的人一起踢,每个人也都感到安心。

Apple、Google 或邮箱。第一个界面就可以切换语言。

附近的比赛,可按公开范围和赛制筛选,按时间或距离排序。

共三步。一开始就提示组织者:场地由其自行负责。

费用与组织者商定,应用里写得清清楚楚。

固定的球友圈有自己的比赛、聊天、成员和规则。

技术水平、参赛场次,以及作为组织者和球员的分开评分。
来自 iOS 版本的真实界面 · 左右滑动 →
- 发现附近的比赛
- 比赛和球场地图
- 仅在应用打开时使用位置
- 几步就能创建比赛
- 用邀请码邀请球员
- 比赛满员时的候补名单
- 组织者管理名单的工具
- 面向所有参赛者的比赛聊天
- 拥有独立聊天和规则的社群
- 组织者和球员评分
- 举报和屏蔽
- 私密资料与关注申请
- 头像经审核后才会显示
- 可在应用内直接注销账户


每个界面都有英语和欧洲葡萄牙语版本,用户在第一个界面就能切换语言。
使用 Apple 或 Google 登录 · 可用 Face ID 锁定手机上的账户设置 · 仅在应用打开时使用位置。
从“看起来像应用”到“真正像应用一样运转”。
第一版看起来已经完成,其实没有:任何人输入任意邮箱就能进入,数据也只存在手机上。那天的项目笔记写得很直白。
“如果一个小孩输入任意邮箱就能进去,那就不是真正的登录系统。”MatchMate 项目笔记,2026 年 4 月 · 译自英文
在 Expo Snack 中做原型
在安装任何东西之前,先在浏览器和手机上验证想法。
正式的工程项目
本地开发、Git,以及面向 Apple 和 Google 的构建配置。
真实账户与真实后端
使用 Supabase 实现登录、数据库和服务器函数,并通过数据库规则决定谁能查看和修改哪些内容。
安全审查
分阶段审查权限、通知和照片存储,每一轮都记录成文后再进入下一步。
发布关卡
为提交前的最后几个构建设定严格规则,避免最后关头混入新内容。
技术说明:发布关卡与自动检查
在真实手机上完整测试
只有在代码中已无已知阻塞问题时才会创建。
只修复问题
Build 27 之后不再添加新功能。
对照最新规则检查
届时重新阅读 Apple 和 Google 的要求,而不是凭记忆。
一条命令在构建前运行 18 项自动检查
我如何使用 AI:我借助 AI 编程助手(ChatGPT、Codex 和 Claude)开发了 MatchMate。方向由我来定,产品和设计决策由我来做,工作由我审核,并在真机上测试。大部分代码由助手编写,但上线的内容由我负责。
Apple 提出了一个合理的问题。
审核期间,Apple 指出注册流程收集了出生日期和城市。MatchMate 运行并不需要这两项。我删除了这两个字段,并于 2026 年 10 月 21 日重新提交。应用目前再次处于审核中。
已删除
已删除
注册 · 重新提交的版本
全名用户名邮箱密码确认密码继续保留的字段 · 示意图
我带到客户项目中的经验:表单上的每一个字段,都是对“为什么需要这项数据”的承诺。如果给不出好的理由,这个字段就该删掉。
少一点安排,多一点上场。
官网的任务是在应用上线前让人一眼看懂这个想法:一句话讲清问题,一段随滚动逐步组建比赛的介绍,以及一个可以在浏览器里直接点击体验的应用演示。
网站还收录了 Apple 和 Google 要求的文件:使用条款、隐私、安全、联系方式,以及公开的账户注销页面,提供英语和葡萄牙语版本。这些法律页面与应用内显示的内容出自同一来源,因此两者永远不会互相矛盾。设计经过多轮迭代,包括早期在 Wix 上的尝试,最后迁移到 Cloudflare 托管。

用四个词说清承诺,旁边就是真实的应用。

随着滚动组建比赛:球员一步步填满动画球场,直到开球。

一个明亮、海报式的停顿,直截了当地说明好处。

浏览器内的演示账户。无需安装,不保存也不发送任何数据。
十条 Reels,超过 20 万次观看,上线前 960 位关注者。
我用 Canva 制作了 MatchMate 的 Instagram:葡萄牙语和英语的短 Reels,把幽默、场边画面和在群聊里约球的那种熟悉的混乱结合在一起。每条 Reels 都使用了 Instagram 自带的推广功能,而账号是在应用还标着“即将推出”时成长起来的。



“POV: pre-game passes with bro”
时长 19 秒,8 月 24 日发布。
- 观看次数
- 40,745
- 覆盖账户
- 34,989
- 点赞
- 1,001
- 新关注
- 438
- 最近一次推广花费
- €5.93
- 带来的主页访问
- 133
- 每次访问成本
- €0.04
数据来自 Instagram Insights(一年视图),采集于 2026 年 10 月 27 日。所示花费仅为最热门 Reels 最近一次推广的费用。
如今我带到每个项目中的经验。
看起来完成,不等于真的完成。
精致的界面背后,也可能是假的登录或根本没有真实数据。我会检查那些看不见的部分。
测试与正式环境绝不互通。
测试版本只连接测试资源,因此测试永远不会改动真实数据。
只收集必要的信息。
每多一个字段,就多一个日后要向用户和审核方解释的隐私问题。
电脑不是手机。
滚动、安全区域和通知在真实 iPhone 上表现不同。所以我在真机上测试。