---
author: 用AI發電
date: '2026-01-03'
guest: ''
layout: post.njk
source: https://www.youtube.com/watch?v=xC9Vd7i4Eas
speaker: 用AI發電
tags:
  - ai-assisted-development
  - app-development
  - user-experience-design
  - indie-hacker
  - monetization-strategy
title: 从设计师到独立开发者：AI 助力打造 4.9 分治愈系 App《椅子上有猫》
summary: 资深设计师 Ryan 分享了如何利用 AI 从零开始开发出高评分治愈系番茄时钟 App《椅子上有猫》。他强调了审美和情绪价值在 AI 时代作为产品护城河的重要性，并详细介绍了从产品构思、AI 辅助开发、UI/UX 迭代、用户反馈收集到小红书营销的整个过程。Ryan还分享了在开发中遇到的技术挑战、调试经验以及未来的商业化和产品拓展计划，鼓励大家边做边学，善用 AI 和搜索解决问题。
insight: ''
draft: true
series: ''
category: ai-application
area: tech-engineering
project: []
people: []
companies_orgs:
  - OpenAI
  - Apple
  - 小红书
products_models:
  - 椅子上有猫
  - Forest
  - Procreate
  - 黄油相机
  - GPT-3.5
  - GPT-4
  - GPT-4o
  - Code Interpreter
  - CodeX
  - Antigravity
  - Fork
media_books: []
status: evergreen
---
### 开场与嘉宾介绍

**主持人**: 大家好，我是 Ryan。刚才电脑又崩溃了。我先跟大家介绍一下。我们都知道在 **AI** 时代，写代码的门槛已经非常低了，但带来了一个新的问题：当所有人都能用 **AI** 写出功能的时候，你的产品为什么能脱颖而出呢？这个护城河到底在哪里？之前我们在几个直播里聊过，可能是对细分领域的理解或者是有资源。但今天我们的 **Ryan** 带来的是另一个护城河，就是审美和情绪价值。他本人坐标温哥华，是一位资深设计师。今天我们请来了 **Ryan**，先请 **Ryan** 跟大家打个招呼，然后直接切入正题。

**Ryan**: 好的，大家好，我是 **Ryan**。我之前一直在做产品设计，就是设计 App、网站这些。2023年的时候辞职，想要创业，尝试过一些别的创业项目，但没有太成功。现在就是全职跟我女朋友一块，在做这个 **《椅子上有猫》** 的番茄时钟 App。

**主持人**: 你本身不是程序员，对吧？你没有程序背景，对吗？

**Ryan**: 对对对。我有接触过一些，之前有做过一些网站的开发，了解 **HTML**、**CSS**，但基本上就到这了。更高深的 **Java** 这些，就只是处于一个大概了解，写不出来的那种状态。

**主持人**: 那你先介绍一下你的产品。我们的 App 已经在 **App Store** 上线三个多月了，有 4.9 分的评分。我们先请他介绍一下这个 App。

### 《椅子上有猫》App 介绍

**Ryan**: 好的，稍等一下，我先分享我的手机屏幕。这个是我的手机，我们这个 App 就是一个番茄时钟，大部分番茄时钟的功能都有。比如说一般大家用它就是设定一个专注的时间，20 分钟，然后就开始。这个 App 可以设置成屏蔽所有其他 App，或者只留你想要的，然后你就可以开始干你想干的活。

我们的主要卖点就是这只猫。当然我们有很多种不同的猫，但大概的想法就是说在你专注的时候，猫咪就会在椅子上出现，陪着你一块工作。它有猫咪的呼噜声，就跟一只真实的小猫一样。现在设置 20 分钟没有办法演示，但正常情况下结束之后会给你一个小礼物。如果失败了，猫咪就会生气一下，给你一个小垃圾。你可以把垃圾或者礼物都卖掉，换小鱼干。换了小鱼干之后，就可以换别的猫咪，换家居这些。这个大概就是这个产品的主要功能和卖点，还有很多其他的小功能，我们可以待会再讲。

**主持人**: 我有一个小问题，你那个猫咪呼噜声是自己录的吗？

**Ryan**: 没有，呼噜声都是网上找的免费音频。因为我女朋友有养猫，但她的猫在国内，这也是一开始做这个 App 的一个初衷，就是想说可以做一个虚拟的东西出来来陪她。待会我可以细细讲这些故事。

### 产品构思与设计心路历程

**主持人**: OK，那你继续讲你的 App，你是怎么构思到怎么完成这个产品的。

**Ryan**: 好的，我把我的屏幕分享一下。我大概会讲两个部分：一个是我设计的心路历程，就是从怎么有这个想法到怎么出第一个版本，中间一些设计开发的想法；第二部分主要是讲实操演示，我会现场做一个功能，到时候看看实际情况，因为 **AI** 有时候挺慢的。

我们这个 **《椅子上有猫》** 有个小典故，就是一开始我女朋友做了一个挂件，就是屏幕上这个椅子挂件。我特别喜欢，给它取名叫“椅子上有猫”。有了这个名字之后，我就特别喜欢，一直想怎么能根据这个名字做一个东西出来。

之后就会在网上看，刷到很多类似番茄时钟的 App，比如 **Forest** 可能是其中一个最有名的。**Forest** 就是说你开始专注的时候可以种树，专注好了就会有一棵大树。还有很多其他这种猫咪的、做饭的，都是这种感觉。

因为我女朋友喜欢猫，她的猫平时在她画画工作的时候也会在旁边陪着她，很有陪伴的感觉。现在猫不在身边，就想说番茄时钟的工作专注和猫咪的陪伴感可以有一个很好的结合。所以就想说，那咱们也来做一个。

一开始的想法完全是因为这个名字而展开的。一般大家做产品都是说“我有一个问题想要解决”，然后看大家平时围绕这个问题会遇到哪些痛点，别的 App 怎么解决。我们这个就纯粹只是因为有了那个名字想要做一个东西，正好这些概念、设定都比较契合，所以就做了它。

### AI 辅助开发与迭代

**Ryan**: 一开始有了这个想法之后，我当时在网上看到很多人拿 **GPT-4** 还是 **GPT-3.5** 来做 **iOS App**，他们有成功。我就想先试一下。现在屏幕上这个就是第一个 Demo 版本。做这个其实也花了很久的时间。

主要就是卡在一个点，就是开始之后，**Live Activity**（实时活动）的倒计时功能，经常几秒钟之后就卡住了，弄不出来。那会我还在一边旅游一边做，花了很久才上网搜到具体要用哪个 **API**，怎么写，机制是什么样子。然后告诉 **AI** 这么写，它才把整个很基础的功能写好。所以大家如果现在在做项目，遇到什么地方，还是要善用搜索，哪怕让 **AI** 搜也可以。但一定要自己去搜，可能有些特别技巧 **AI** 直接做就不太明白了。

后来有了这个雏形之后，就开始设计。那会没有太花时间来做，只是大概把样式摆了一下，想了一下 App 是什么样的。我当时的想法是，一定要让我女朋友先把她的画风这些都想好，有一个大概出现之后，我再去设计。因为番茄时钟很难做出不一样的功能，甚至交互都会难做出不一样的。所以当时想法就是看我女朋友怎么能把这个弄得不一样一点，她的画风是什么风格，我再来考虑 App 的各种其他想法。

我女朋友把这些猫画好之后，我就尝试了一下，动画都 OK。我们就慢慢开始开发了。那会开发是很简陋的，我有尝试写 **PRD**，写 **implementation plan**，一步一步来。但我实际测试下来的感觉是，写这些东西，还不如我一步一步跟 **AI** 讲“我现在要做一个什么功能，你先做什么”，做完了好用了之后再加再改。这要比我直接写一篇很长的 **implementation plan** 丢给 **AI** 让它去 **follow** 效果要好，就很奇怪。网上当时大家都在推荐写 **PRD**，写很详细的 **documentation**，但我的情况就是写了反而没有很有用。

### 市场推广与用户反馈

**Ryan**: 大概就是一步一步这么做出来的。期间我女朋友有一个 **小红书** 账号，发她平时插画的内容。我们就想先在 **小红书** 上宣传，看看大家对这个想法怎么样。一开始宣传效果很好，像这个视频，可能是 8 月份传的第二个关于这个 App 的视频，一下就火了，大家很喜欢。我们也有很多粉丝加 **小红书** 群，这样就给了我们一些内测人员。让他们测试，看他们哪块用得不好、不喜欢，或者哪块特别喜欢。

我们花了一个月时间专门做测试，改了很多地方。比如商店、出售界面，都是根据用户反馈来改的。现在的商店界面就很不一样。也因为一开始我女朋友发的这些视频火了，我们的上线效果还不错，上线一个月有几千个下载。所以我们的初始用户基本上都是靠 **小红书** 上的粉丝来的。

现在想起来，也是蛮幸运的。如果我女朋友之前没有花一年的时间来经营这个账号，那我们这个开发或者上线可能就没有办法这么顺利。因为现在 App 还是 **SaaS**，竞争很激烈，你怎么把你的产品宣传出去，要比你产品做得好不好重要得多。

上线之后，我们就一直在修 **bug**、加功能、改进。几个月之后，在前两周，我女朋友又发了一个视频，又火了。她还拿她的私人账号发了一个类似素人推荐的帖子，这两个帖子同时火了。我们一下子一周两周的时间，下载量和收入都翻番了，全靠这两个视频，应该说是全靠这两个帖子。

我可以大概给大家看一下我们现在的情况。这是过去 28 天的情况，基本上都是靠那两个帖子来的钱和新用户。这个也给我们很大的动力，就是知道大家特别喜欢我们这个画风、这个玩法，跟别的 App 都不太一样。所以我们就很有动力接着做下去。现在我们主要针对 **小红书** 上的用户，之后的计划大概是会使劲推北美用户，可能会发 **TikTok**，找别的 **influencer** 帮忙宣传，希望能把这个真的做大。因为我们的卖点是 **IP**，所以将来可能会围绕这个 **IP** 做别的，比如周边、实体周边，或者是别的 App，都有可能。但现在一开始的想法可能只是把这个番茄时钟做好，现在的想法是怎么把这个 **IP** 椅子上有猫做好，围绕这个可爱的猫猫、可玩的猫猫来做一系列的功能和产品。现在我们未来的计划就是这样子。

### 开发周期与 PRD 作用

**主持人**: 这是一个非常完整的产品了，已经开始盈利了。我想问一下，你这个产品从做到上线周期用了大概多久？

**Ryan**: 可能两三个月的时间。第一个版本大概两个月的时间，后来花了一整个月都是在跟内测用户交流，让他们测，我们在改很多东西。那花了一个月，然后现在上线了四个月。

**主持人**: 有一个问题，他说他以为要先写 **PRD**，下面 **Flash** 回他，其实 **MVP** 的时候不是那么重要，但之后 **PRD** 还是挺重要。你也是同感吗？

**Ryan**: 怎么说？我其实觉得还好。现在我的确开始写 **PRD** 了，待会可以演示一下，我用 **OpenAI** 写具体的。但那是最近可能一个月的事，之前大概五六个月，我都没有 **PRD**，没有 **doc**。我甚至连设计都没有，我的流程基本上就是我在脑子里想我要做什么功能，交互大概是什么样的，然后我会看别的 App 他们是怎么做的，然后我就直接跟 **AI** 说“我我要做一个什么功能，它的样式大概是什么样的”。或许我分享一下我的屏幕会更好讲一点。

就比如说我在做统计功能的时候，这已经是第三个版本了。我之前没有办法给大家看之前的版本，但我这个版本改了很多，比如这些图表都是后期改的，增加的这些上下箭头也是后期改的。我在改做这个的时候，就是一块一块改。比如我想加一个类似趋势图的感觉，我就会跟 **AI** 讲说“我要加趋势图，它是 **line chart**，我要展示每天不同的专注时间，然后我想要在左边显示一个 Day”。就大概描述一下，之前还没有办法一次性描述得特别清楚，因为我也是边做边想。所以基本上就是描述完一遍之后，它开始做，然后再开始改，就是一遍一遍的。

尤其是像这种 **UI**，比如我想要放在这块，经常是跟它说完，它做了之后，我要手动去改大小、具体位置。所以这个时候就需要大概去学一点，我现在主要在用 **SwiftUI**，要学一点它的逻辑是什么。你可能怎么加，怎么挪东西，不然的话纯靠描述跟 **AI** 讲你要怎么改一个东西，的确特别麻烦。后来我也发现你给一张参考图还是比较有用的，不管是你自己画，还是截别的图丢给 **AI** 说“我大概是要这种感觉，这种 **layout**，只不过要用我们自己的颜色、字体”。这种会更好一点。但也的确就是做出来之后，还是要自己去改，或者自己再跟 **AI** 一点一点讲。

### AI 协作与调试经验

**Ryan**: 我可以给大家稍微看一下我跟 **AI** 聊天的一个过程。它更新到了。这个是今天改的一个功能。这个功能就是说，我们的 App 里可以让用户设定一个时间，然后会给他发推送通知，就是说“你现在要开始专注了”。现在通知提醒上显示的字会是“你的猫正在等着你专注”。但我们的猫其实它是有名字的，它有自己默认的名字，你可以改名字。这样会觉得比较更亲近一点，很多用户觉得他真的养了一只自己的猫。那我们通知里就只是说“你的猫”，所以我就想把它名字加到通知里。这样下次通知提醒的时候，比如你的猫叫咪咪，就是“咪咪正在等着你专注”。

一开始我想得很简单，我就只是把这个通知要改的 **string**（**text**）给 **AI**，说“我想要加 **name**”。因为它会在 **shop view** 展示，所以我把这个给他，给一点 **context**。然后它就开始做，做完了之后我发现不对，因为它做完了其实还是会用“your cat”，它没有用这个页面本来应该有的名字。我就跟它讲说“这个是不是应该不是？”然后它又开始调整。它改好了，但是因为我之前有一个文件是专门设定好，里面哪个 **code** 代表了哪只猫，那只猫的名字应该是什么，我其实有写好这些。但是因为我在这儿的时候没有给它这个 **text**，它就不知道，所以它自己又写了一遍。

我就跟它讲说“你应该要回去用这个，就不要重复写 **code**”。这种情况其实挺常发生的，因为 **AI** 有时候为了省事，它就不会去特别看你整个 **codebase** 里都有哪些东西，因为它那样特别浪费 **token**。所以你有时候得自己知道我之前大概写过什么，然后给它需要的东西，这样它就更容易写出你想要的。然后它就大概写好了，现在就是看 **name** 是 **dynamic**，如果没有设定新的名字，那就是默认的，如果有的话，就是用户自定义的名字。

然后它就跟我说“没问题了”，但是就又有 **bug** 了。这个 **bug** 就是说，用户保存了这个 **notification** 之后，如果用户改了名字，这个 **notification** 就不会显示用户改之后的名字，只会显示 **notification** 保存时已有的名字。然后我跟它讲说，它开始改，改改改，然后又出了个 **bug**，就是有时候会显示这个，然后就不会显示猫的名字。我也不知道为什么。我之前都是拿 **GPT-3.5 Turbo** 在做之前的东西。因为出了这个 **bug**，我就觉得它可能又做不明白了，又进到死胡同了，这种情况还挺常见的。于是我就又换成 **GPT-4o**，然后拿 **GPT-4o** 在改。它就开始一点点查，为什么这样子。查了之后发现它弄明白了应该是怎么样，改了之后就 OK 了。

大家就能感受一下，哪怕是感觉应该是一个挺简单的功能，你只是改一下。但如果你一开始没有描述特别详细，具体要用哪些，要改哪些地方，要动哪些，那 **AI** 很大概率就没办法一次过写出你想要的东西。待会我就可以给大家展示一下，如果用 **OpenSpec** 出来具体的 **AI** 要做的事情，要改哪些地方，这样子效果会更好。

### 版本管理与动画实现

**主持人**: 我先看看大家有什么问题，然后我再接着往下讲。先回答 **Flash** 的问题，他说你的版本管理是怎么管理的？他认为一个商业化的产品，这个应该是很重要的一部分。

**Ryan**: 版本管理的确是。我知道要做版本管理，我也大概懂 **Git**，因为现在写 **code** 都是用 **Git** 来做。但我的问题是我经常忘了去做 **Git**。就是我写完一个之后，就忘了 **make commit**，把我改好的都保存好。经常会出现，我一直在做，后来发现它出了好多 **bug**，我觉得应该要打倒重做。我想要翻过去，那有时候比较好翻，因为我可能只改了一个文件。但有时候我可能改了很多文件，然后我又同时在做两个功能，那这样 **AI** 就弄不明白了，你让它往回撤，它也不太能回撤明白。我自己回撤也回撤不明白，就经常会发生这种问题。

这个是我用的一个 **Git** 管理软件，它是一个可视化的，会比较容易操作一点，比纯写 **code** 用命令行要好。

**主持人**: 这个工具叫什么呢？

**Ryan**: 这个工具叫 **Fork**。我不知道有没有 **Windows** 版本，但 **Mac** 上应该是有的，是免费的。

**Ryan**: 就是一定要写 **commit**，最好做完一小部分，就让 **AI** 写也可以。他把他刚才做的那些，加你撤，也比较方便。不过如果你用 **Code Interpreter** 或者 **Antigravity** 的话，他们现在那个回溯的功能做得还比较好。简单的一些东西，你用它的回溯就 OK。但因为我后来长期都是在用 **CLI**，就是全是在写命令行，如果不用 **Git** 的话，就很难弄了。

**主持人**: 下一个问题是来自 **Gary**，他说 App 里面动画是怎么做的，怎么放进 App 里面的呢？

**Ryan**: 动画其实都是我女朋友在 **Procreate** 里手画的。因为她这个画风的问题，没有办法做适量的动画。一般 **iOS** 里面大家会用 **Lottie** 来做动画，这样 **code** 改起来也方便，又是矢量，体积很小。但是因为我女朋友的画风，她又是用 **Procreate**，所以就没有办法，就只能用一帧帧动画。在 **SwiftUI** 里呈现的方式就是 **PNG**，一个动态的 **PNG**。会用到一个 **library**，把这些 **PNG** 不同的切片展示。

现在其实这不是最优解决方案，因为文件大小很大。大家也可以看到，一个大一点的会几 **MB**，我甚至还有 5 **MB**、7 **MB** 的，小一点几百 **KB**，特别占地。将来我们猫猫动画越来越多，这就会爆炸。所以我现在想尝试用 **AVIF**，它是一个新的格式。**AVIF** 在网站上基本上是原生支持的，它是一个可以压缩到很小，质量又很高，比 **PNG** 要好很多的格式，又自带支持透明度跟动画。但是在 **iOS** 上原生不支持，有一些 **library** 支持。所以我就在尝试用这个。我们 App 上刚才给大家展示的时候，有个动态背景，那个背景就是用 **AVIF** 做的。我之后会看看能不能把所有的 **PNG** 都换成 **AVIF**，这样会小很多。这个应该是我不知道有没有更好的解决方案了，但在 **iOS** 上的确有一些限制，就只能这样了。

### 用户反馈与功能整合

**Ryan**: 再看用户反馈，突然大家原来是在这样用它。前一阵子有一个用户，他好像做了一个手术，挺严重的，需要住院，在家休息。但他纯粹只是需要休息，他特别喜欢我们那个猫猫的动画，特别喜欢猫的打呼噜的声音，就感觉能让人很平静下来。他就平时只是开着它看一看，放那听听声，还挺有意思的，就真的能体现出来我们这个给的情绪价值，有时候要比使用价值大很多。这个是当时一开始想做的时候没有预料到的地方。

**主持人**: 对对，我作为普通用户，我也觉得很治愈。下一个 **Lorry**，他说比较好奇开发中不同功能整合起来会不会有冲突的问题？因为是一块一块开发的。

**Ryan**: 不同功能整合起来其实还好。我得给大家看一眼，大家可以在这看一下我的文件管理。基本上比如这一页是 **About Us** 页面，一个介绍；这一页是选择。比较重要的页面，比如这个 **Timer** 页面，就是大家在专注的时候的页面。基本上每一个页面都分成它单独的一个文件，甚至有些比较复杂的页面，比如弹出一个页面里的弹窗，或者其他一些操作，我都把它分成一个单独的页面。这样的好处就是，如果我愿意的话，我是完全可以同时做两个功能，然后之后再合在一块的。

大部分的功能都可以这样。但如果有时候需要动到，比如我的数据模型这些，它可能不完全是数据模型，就是一些背后的一些架构、各种设定这些东西，如果需要动到它的话，那就会比较麻烦。到时候在 **Git** 里 **merge** 的时候就要自己小心一点。所以我现在通常情况也不太会同时做两个项目，因为我都是边做边想，如果我要同时边做边想两个东西的话，脑袋根本转不过来，跟 **AI** 交流就交流不明白了。所以理论上是可以做，但我实际操作上我不太会那么做。

还有比如所谓 **data model** 这块，主要是我数据模型。如果有动到这块的话，就会比较难。

**主持人**: OK，那这个就是我们这阶段最后一个问题，希望回答了你的问题，**Lorry**。你可以继续你的演示，就是讲你要讲的内容。

### AI 驱动的开发流程

**Ryan**: 好的，那我接下来我就可以先演示，我先给大家看一下我现在的工作流程是什么样的。我刚才有提到，我现在是在用 **OpenSpec**。它大概就是一个 **framework** 的感觉，你跟 **AI** 先讲你要做什么，然后 **AI** 就会根据你的需求生成一个。

这是它生成的，它会有 **proposal**，先讲现在要做什么。比如这是一个 **onboarding flow**，**onboarding** 是我最近才加的，一开始我都没有加 **onboarding**。就是大家首次下载 App 的时候，会先过一下这个 App 执行哪些功能，有一些操作。

这个我就是会给它讲，我需要哪些页面，每个页面上要展示什么功能。这个我有稍微在 **Figma** 里做一下，大概摆一下，想一下有哪些功能。但具体的实际 **layout** 还是主要在跟 **AI** 交流过程中开始改的。它就会有 **proposal**，它会有具体的 **design**。**design** 就是说可能这个功能我们哪些是要完成的，哪些是要改动的，哪些是不做的，它具体的 **architecture** 是什么，它需要考虑哪些问题。这样 **AI** 在做的时候，它就会看这些 **checklist**，它就不会做不该做的功能，或者改了不该改的地方。它比较好的还会把要完成的这个大功能拆分成很小的一些小功能，然后 **AI** 就会一步一步按照这个做，没做完一个它会打勾，就是做完了。这样它就可以比较顺畅地来做这些东西。基本上它在做的时候，你就可以不用管了，你去干别的。但是做完了之后，它大概率是不会达到你想要的。当然这有可能跟我边做边想有关系，因为我可能做完了之后想要改，所以还是会有反反复复的这种情况。

可能我还是得去改 **UI**，**UI** 现在到现在我也没有找到一个特别好的方式来做它。你可以给它看图、给 **reference**、给 **design**，这些它都很难一次做好，就只能之后再改。这个的确没有什么，至少我没有发现特别好的办法了。

其实你看，这块它有很多功能没做完。所以它大概率当时发生了什么，就是可能我觉得第一个版本做好了之后，我会让它改，改了之后，我可能就没有让它再去 **update** 这个。应该会在 **AI** 那个里面写好，就是说你改的时候会实时 **update** 的话就 OK，但我没有做这些，所以它就没有 **update** 这些。它的 **notification** 也没有调整。但是对我来说也 OK 了，我也不是特别非得一步一步做到完美再改，按步骤来。所以实际效果我觉得也还好。但之后可能会发生什么情况？就是比如我改了一些内容，它可能跟这个 **design** 已经不对了。但我之后我想要再 **reference** 的话，可能就又有一些不一样的地方，**AI** 可能会弄不太明白。

所以严格来讲，你没做什么改进的时候，要再去跟 **AI** 讲说“你要把这个更新一下，**up-to-date** 这样”。之后你做完这个功能，把它 **archive** 起来，它会把这些放到另外一个文件夹里。这样就相当于一个 **reference**，之后你再改进，或者是 **AI** 想要去看，都很方便了。但大概就是我用 **OpenSpec** 的一个逻辑。

### 动画与 UI 适配细节

**主持人**: 我看比起这个技术层面的，大家对你的动画更感兴趣，是吗？**Flash** 和 **Remy** 都问了类似的问题，就是怎么用 **coding** 的形式指定动画图片在页面中的特定位置，怎么进行微调？

**Ryan**: 好的，我可以给大家展示一下。动画分两部分。一部分是猫猫动画。这个猫猫动画因为要根据家居配套走，我女朋友在画的时候，所有的素材都是按照统一的一个大小画布去画的。所以所有猫猫的动画，这样子主要就是我方便做。因为如果所有画布都是同样的大小的话，我就可以跟大家讲说“这些素材，包括猫猫的动画都是同样的大小，那就把它们都叠在一起，然后向上对齐”。这样它基本上在所有页面都就可以对齐了。

但这样有一个坏处就是，因为我们都是用 **PNG**，**PNG** 即使是透明背景，因为它有这些空白的地方，它可能偶尔还是会大一点，可能会造成文件更大，我没有具体测试过，但我感觉是这样。但我为了 **code** 上面方便，所以就是这么做的。

那后期出了一个什么问题呢？后期我想要，我怎么展示比较好，我在手机里展示吧。后期的问题就是，因为我们前期这些背景都是长方形。当时想说主要是给手机用，都是长方形的。后来有很多 **iPad** 用户，他们用 **iPad**，就更趋近于一个正方形的感觉，而且 **iPad** 还有横屏、竖屏。在 **iPad** 上，它这个长方形的壁纸就会拉长，就不是特别好看。后来我们最新画了一些壁纸，都改成了正方形。你可以在这看到，其实是正方形的。那这样子对齐就有有点费劲了。原来的都按长方形写的，现在要有一个正方形，就得单独为了这个正方形来做不一样的设定。你再加上我们最近加了几个动画，我刚才提到那个 **AVIF** 的 **loading** 又有一些问题。搞这个搞了很久，当时具体解决的方法就真的只是一步一步跟 **AI** 讲说“我这几个要是长方形是什么大小，我要做到什么效果？我在手机上是想要它居中显示中间这个部分，**iPad** 是把它完全整个显示出来”。

当时因为可能跟 **AVIF** 用的 **library** 有点关系，它一下弄不明白，它当时在手机上会把这个放得特别大，然后它只显示中间一小块，我也不知道怎么弄的。然后我就跟它反复说“我要上，比如说这个最终效果应该是我要把这个正方形的壁纸的 **height** 跟我的 **device height** 弄成一样大，然后显示居中”。我就试了不同的模型，反复讲，最终花了可能很长时间才把这个弄明白。

有时候跟 **AI** 讲这些特别细节的东西，我不知道是它听不明白，还是它不知道怎么写，反正就是得反反复复来弄。然后有一些别的动画，比如这些东西挪位置，就是要跟 **AI** 讲说“因为我没有设计稿，我一开始有一些就是我把那个给了 **AI**，它大小什么也都弄得不对”。然后我就只能是在写 **code** 的时候跟大家讲说“我要大概这个东西我是要从哪块挪到哪块，然后花多长时间挪过去”。然后它就会调整一些这种 **opacity change**、**animation**，然后比如屏幕上那些东西的 **attachment icon**、家居的大小，它都会做出来。之后它做出来一个雏形之后，我就要自己去一点一点调这个数据数值。比如我可能想要这个 **icon** 大一点，这个 **icon** 小一点。我想要这个之前它在哪，我想要往左边挪一挪，往右边挪一挪，就一点一点调数据。

后来我又加了一个横屏的功能，横屏就是相当于另外一个模式了。我就让它改，横屏我想要怎么样。横屏就是左右分开了，猫在右边，**timer** 在左边。改这个又改了好久，因为有时候它就是我一开始想让这个 **timer** 跟这个 **hold to cancel** 的字在左边，一个在左边屏幕的上半部分，一个在左边屏幕的下半部分。我讲的时候是这么跟它讲，但实际做出来不知道为什么它俩就挨得特别近，然后就又得让它一点点改，就是反复地讲。也可能花了好久才弄好。这个好像是我让 **GPT-4o** 重新说“你们给我把这块 **reform** 一下，**start from scratch**”，然后说我想要什么样的效果，然后它就重新把整个 **layout** 改了一遍，就 OK 了，就大概做到我想要的了，就是这种反反复复的过程还挺多的。

### 跨平台适配与特殊功能实现

**主持人**: 据我所知，你是全平台都有的，就是苹果的设备，苹果。

**Ryan**: 对，现在只有 **iPhone** 跟 **iPad**。**Mac** 也可以用，但就只是摆个样子，它不能把别的屏蔽，倒计时是好用的，但就只是放在那看一下而已。因为如果要做，在我手机上我是用手机自带的 **Family Control** 功能，就是屏幕时间那个功能，那是苹果自己的一个系统，很方便。在 **Mac** 上没有这个系统，你如果要做的话，就自己要做一个另外的 **block** 功能，就比较麻烦。

说到这个 **Family Control**，也挺费劲。因为 **iOS 18** 的时候，它有很多 **bug**，现在可能也有那些 **bug**，但 **iOS 18** 时候比较严重。比如它，我给大家看一眼，最上面有一个白名单的功能。白名单功能 **Apple iOS** 原生是不支持的，它只支持你选中哪个就去 **block** 哪个，而不是选中哪个去 **block** 别的。光做这个功能，我就花了好久去跟大家讲“我我要白名单，而不是黑名单，我要让用户选中的去 **block**，不选中的不 **block**”。反正就是讲了很久很久，我当时不太记得怎么做好了，反正它就是终于做好了。大概就是会不停地换模型，然后去网上搜一些，看看有没有别人做好的例子。这个功能好像没有搜到特别相关的内容，所以没办法，反正就是来回试。

后来还有一个问题，在选 App 的界面的时候，如果你选的东西多了，在以前的 **iOS 17** 的时候，整个页面就会崩溃。你就必须得重启这个页面或者重启才会显示出来。在 **iOS 16** 好像好了。但这个问题就是苹果的 **bug**，没办法修，但是体验又特别不好。因为经常会有人选得特别多，后来就加了一些字，大概讲“你不要选超过 20 个 App”，然后“你不要选一整个 **category**”。后来有加了另外一个功能，但现在可能没有办法显示了，就是会崩溃的时候。因为苹果的崩溃就是整个页面就白了，什么都不会显示。所以后来有加一个功能，就是会监测它有没有崩溃，崩溃了之后，就提示一下说“这个崩溃了，你重启一下就好了，不要选太多 App”。

这个我是网上搜的，有一个比较著名的软件，主打这种别的功能。它有一个交互，就是说这个页面崩溃了之后，它会给一个提醒。网上在 **Stack Overflow** 还是什么的，有人发帖问他们那个怎么做的，我怎么做明白。然后就有一个人讲说“这个页面是这么这么做的，加一些这么这么的 **code** 就 OK 了”。然后我就把这对话丢给 **AI**，然后 **AI** 就做了几遍，做明白了。这种情况还挺常见的，就是有时候 **AI** 就完全做不明白。但网上有人有过类似的情况，做了一下就 OK 了。所以真的就是得用搜索，**Stack Overflow** 虽然现在看人少了，但是以前的内容还是很有用的。

还有另外一个功能，比如这个桌面小组件的动画。这个也是我知道苹果有的 App 是能有这个功能，但是怎么做我不知道，我就想让 **AI** 做，**AI** 真做不明白，完全不行。因为苹果小组件有很多限制，各种内存的限制，很麻烦。后来我是在 **YouTube** 上有一个视频，我待会可以找一下，大概就是讲一下苹果有一些有的 **API**，就是让小组件能有一些特别的动画。这个功能其实没有用到私有 **API**。但就是因为那个视频，我就把那个视频里头的那些截图、它的 **code** 怎么写截下来，然后就给 **AI** 说“你照着这个写”，然后也来来回回改了好几遍，最后做成了。这个实现也是挺费劲的。但只要你乐意搜，然后你得稍微读一下代码，稍微得大概知道大家说的是怎么回事，不然你可能看一个 **YouTube** 视频，你都不知道他说的这些是什么意思，那也有点困难，想做一个什么东西。

**主持人**: 明白了，完全没有基础还是不行，要边做边学，对吧？

**Ryan**: 对对，一定要边做边学，没有办法。

### 数字字体与用户体验决策

**主持人**: 你可以演示你的那个你要演示的功能。不是功能，是你要做一个功能出来，对吧？

**Ryan**: 我尝试一下吧，因为那个功能其实我还没有想好怎么做。

**主持人**: 那我们也可以继续回答问题。问题还有一个问题，他说“请问数字倒计时这一类的每个数字都是手绘的图片，当初是怎么让 **AI** 做到让每个数字都对上相应的图片？”

**Ryan**: OK，这个英文字体其实不是图片，是个字体。应该是在说这个倒计时吧。这个倒计时就是一个字体了。一开始我们就是想找一个类似有手绘感觉的字体，比较贴近整个 App 的画风。因为找不到合适的英文字体，我女朋友就索性自己做了一个。做的方法呢，就是有一个网站，它会给一个 **template**，然后在那个 **template** 上画出来每一个字的样子，然后它会帮你转成矢量图，给你做一个字体的打包，做出来。

大概就是靠这种方法做了一个字体。这个字体一开始还有些问题，你现在看其实每个字符的宽度是一样的，所以在变化的时候它不会变来变去。但一开始的时候，它那个宽度是不一样的，毕竟是手绘的，不太好掌握。后来我就用一些专门改字体的软件，导入这个字体，然后把每个字体都调成等宽的。这样它就不会动来动去变来变去那个宽度。这种东西，一开始我也不知道，我也没想到，就真的要做到那儿了，然后再去解决，再搜到底是怎么回事。

**主持人**: 有没有一个体验点，一开始就决定不被数据牵着走的？

**Ryan**: 其实还好，我觉得大部分的功能，一开始的功能没有做太大的变动。可能就是一些交互上会有变动。比如这个商城页面，一开始我大概是一个全屏的感觉。但很多人就提议他们全屏，它是可以选猫，但是它不能看选中之后是什么样子，它也没有办法看没有解锁的那些东西是什么样子，它就没有欲望去真的解锁这个东西，不管是花钱买还是靠鱼干买。然后后来我就把它改成了半屏，改成这种滑动的，你点开就可以预览。

但现在还有一些人提，比如他觉得 **hold to cancel** 太长了，他要按着 3 秒钟。但是这是初始设定，怕大家误触，误触就会掉礼物，不是掉垃圾。但有人提了，我想说改成别的，还是不太好，所以我就没有改。还有另外有人说，在卖礼物的时候，是要连着垃圾一块卖的，但垃圾扣小鱼干。但有人就想说“我想留着垃圾摆着好看，可不可以不卖垃圾？”我说不行，垃圾必须得卖。我现在没有礼物了，所以看不见。如果有礼物的话，你其实可以保留不想卖的礼物。他就可以有时候每种礼物他会留一个在上面，多余的都卖了。但有人就想说“我能不能垃圾保留？”这种的我就不做了。有一些我会听，有一些我就不听了。我会跟我女朋友讨论一下，看看哪些合适，哪些不合适。

### AI 复杂化界面与贴纸功能

**主持人**: 还是 **Flash** 的问题，他说在 **AI** 实现功能的时候，怎么把本来很克制的界面写复杂，防止这件事？

**Ryan**: 我没有遇到过 **AI** 把界面写复杂的，我只遇到过它把界面写不好的，没有写到我想要的复杂程度的，所以暂时好像没有发生过这个问题。

但比如这个，这是一个时间轴的功能。一开始我不想加，我没有加。但这个功能其实是别的 App 里都会有的比较常见的。但我觉得我当时的想法是可能做起来比较麻烦，我说先不加。但后来有用户提了，那我就加吧。一开始是加，当时加的时候，我有给一些别的 App 的页面，给了之后，它就会相对比较好地完成。但是调整这些对齐，调了很久。

一开始基础功能做好了之后，我就觉得这 OK 了，这已经满足用户需求了。但是我女朋友不太满意，她觉得这个功能就是太常见了，大家都长这样，而且不太符合我们这个 App 的画风。然后她又想说可不可以加一个贴纸功能。

贴纸功能大概就是说可以把你收集好的那些礼物，然后放在这个页面上，有点手账的感觉。这个功能其实听上去感觉好像不是特别复杂，但实际做起来还蛮复杂的。主要是这个交互，因为现在这个页面上就有太多的手势交互了。比如我要可以上下滑这个 **timeline**，我可以点开它。我现在要加了这个礼物的话，礼物首先得固定位置，但是我加它的时候，我要挪动它，还得给它放大缩小，还得删除。反正就是交互上其实是挺复杂的一个功能。

也做了挺久的。但后来我发现第一个版本我就只是跟 **AI** 描述我想要什么交互，拿 **OpenSpec** 做出来就效果不太好。但是第二个版本，我在改进的过程中，我其实是抄了 **黄油相机** 的贴纸。因为我实在是没有办法把这个交互模式描述得特别清楚了，然后我就给 **AI** 贴了一个 **黄油相机** 加贴纸功能的截图。但我还是大概描述了需要加什么功能，比如你现在选中这个贴纸之后，这些都是 **黄油相机** 的了，**黄油相机** 还是有描述了一下这些。但我给那个截图的时候，甚至我都没有提这个是 **黄油相机**，但 **AI** 就识别出来那个是 **黄油相机**。我觉得可能会给大家有一些帮助，它大概按照 **黄油相机** 的交互做出来了，还挺好。当然之后还有一些别的 **bug**，又修了很久，测试了很久。

这个可能是我做这个 App 最麻烦的一点就是 **AI** 出 **bug** 是百分之百的。但是你怎么去复现这个 **bug**，然后复现完之后，你怎么跟它描述这个 **bug**，是挺复杂的一件事。像刚才我展示的那个通知的 **bug** 问题，还算相对比较容易。因为你只要设定一个时间，测试一下那个通知弹出来的名字是不是你想要的就 OK 了。但比如说一些别的比较复杂的 **bug**，就比较困难。

像这个功能，一开始会有一个 **bug**，就是说我在操作过程中就不知道怎么地了，这个贴纸就会进入一个没法操作的状态。我就只能选中它，取消它，挪动它，但是放大缩小这些就都不能操作了。我也不知道怎么回事，然后我就跟它讲说“这个贴纸会进入一个这种特别的 **state**，它不能操作，你给我修”。然后它就修不明白，完全修不明白。然后我就是跟我女朋友一块测试测试，后来我女朋友发现当我把这个贴纸放到最底层之后，它就进到那个状态了，就没办法操作了。然后就跟 **AI** 讲说“这个 **bug** 复现是这么复现的”。然后 **AI** 开始有点理思路了，“那可能是 **Z-index** 的问题”，那我就去修 **Z-index**，然后发现不太对。它又发现“那可能是不同手势之间冲突的问题”，它又开始去修，又不太对。后来又修改修改改了好些次，换了可能换了两三次模型，最后才修明白的。基本上我修 **bug** 的流程都是这样，就是来回试，来回跟 **AI** 描述，来回换 **AI** 的模型，然后修好的。

### 开发工具与 AI 模型选择

**主持人**: **Lorry** 问，你在开发过程中使用到的软件和查询资料的地方？因为有时候不知道如何解决问题和去哪里找。

**Ryan**: 开发的软件，就像我刚才提到的 **Antigravity**，还有 **CodeX**。我基本上现在就是用这两个。

**主持人**: **Antigravity** 是最近开始用的吗？

**Ryan**: 之前用 **CodeX** 的时候，是因为它的用的 **token** 不会特别多，比较节约，然后效果也挺好。它做 **iOS** 感觉会比其他的模型要好一些。所以我长期就是都在用 **CodeX**。后来 **Antigravity** 出来了之后，它主要就是便宜，尤其是我蹭了一下那个大学生的优惠，基本上就是免费在用了。而且我发现 **GPT-3.5 Turbo** 的确是，有时候 **CodeX** 做不出来的东西，让它改一下，它会换一个思路做，然后就会做明白了。但是不能长时间用，我感觉长时间用它有时候也会做不明白，就是得换回 **CodeX** 或者换 **GPT-4o**。**GPT-4o** 是最近才开始用的，**GPT-4o** 感觉它似乎在处理一些复杂的问题上会比较好。

就是如果我要给它一些特别复杂的，它要去翻我那个 **codebase**，它可能效果会好一点。但我其实这些都是凭手感，哪个好用，哪个不好用，纯凭手感，我也没有一些特别的跑分去验证。看网站上的，看别人的跑分，有时候也不一定准。但是现在大家公认的就是那个 **GPT** 比较适合 **iOS**。如果你是做前端的话，我觉得大差不差，可能那个做 **UI** 比较强，你直接给它讲“我想要一个好看 **UI**”，它可以做得稍不一样一点，而不是像以前特别像 **AI** 做出来的 **UI**。但因为现在如果你是做前端的，会有一些比如 **shadcn**，它会出一些新的功能，可以让你用它 **shadcn** 自己的 **component**，**AI** 用 **shadcn component** 去做，所以做出来就不会难看到哪里去，甚至还挺好看的。

查询资料的地方，基本上就是 **Google** 了。你就 **Google** 这个问题，然后你就看各种论坛、看 **blog**、看 **Stack Overflow**，看之前有没有人讲他们遇到同样的情况。如果你懒得去 **Google** 的话，你可以找一个 **AI** 搜索的软件，它会比你自己翻可能快一点。我自己手动搜还是挺常见的。

**主持人**: 下一个问题，他有问 **OpenSpec** 和 **OpenAI** 这两个的区别。

**Ryan**: **OpenSpec** 我们还没有尝试过，我是有在前几次直播的时候，有人有朋友演示了，但我没有尝试。我看 **OpenSpec** 的说明里，他说可能更适合从 0 到 1，就是你全新开发一个产品。**OpenAI** 更像是做改进，就是你 1 到 **max**，你加一些功能，改一些功能，可能更适合 **OpenAI**。我感觉可能也是。但如果让我重新做一个产品的话，我应该还是会用 **OpenSpec**。因为我肯定会把功能分成一步一步来做，我肯定不会写一个特别大的完整的 **PRD**，讲这个产品所有的功能或者大部分的主要功能，我还是会一个功能一个功能来做，这样应该会比较好一点。所以我觉得用 **OpenSpec** 可能也还可以。

### 商业化计划与未来展望

**主持人**: 我们问题就先到这儿。你可以分享一下你商业化的计划吗？

**Ryan**: 可以。我讲那个之前我想稍微回应一下 **Flash** 提到的一些问题，比如多设备适配。的确，一开始我选择做 **iOS**，也是因为安卓适配太麻烦，根本对我来说不可能。你不同设备、不同系统，国内还有鸿蒙，大家都想要鸿蒙，你不做又不行，做了上线也麻烦。所以我就是比较专注于 **iOS**。**iPad** 一开始我也没有做适配，一开始只是一个，甚至可以说是 **AI** 做成什么样就是什么样，我没有在管它。但是因为后来确实有一些 **iPad** 用户在提，虽然他们没有占很多，可能只有百分之二三十的人在用 **iPad**，但是我觉得对他们这部分人群还是挺有用的。而且一开始的版本 **iPad** 确实不是特别好用的一个状态。所以我后来横屏、**iPad** 适配都是后来在做。但现在也不是专门针对 **iPad** 去做，只能说是做适配，没有说完全理想状态是根据 **iPad** 做完不一样的设计。比如刚才那个 **timeline** 就可以在 **iPad** 上做得更不一样一点。现在就只是一个 **iPhone** 的扩大版本。自己独立开发的时候，的确就是要一步一步来，一开始肯定不能做得特别完美。而且你自己想得太复杂了，你到时候 **AI** 做不出来，就完蛋了，也没有用。

大家有提到画师。对，这个 App 能做成现在这样，我女朋友功不可没了，不管是运营还是画风这方面。但是大家如果没办法从画风或者 **UI** 这方面做一些改进的话，我觉得至少大家可以想一下怎么结合。就是你想做一个 App，然后怎么结合别的 App 的一些理念、想法。比如我们这个 App 一开始的设定，它没有礼物的设定，它只是你专注了之后给小鱼干，那就很普通了。但因为后来应该也是我女朋友比较喜欢玩 **Animal Crossing**，那就有一些收集的感觉。然后就想说，小猫给你叼一个什么东西感觉还挺常见的，网上会有那种 **meme**，就是小猫出去给你叼了个老鼠回来那种的。就想说可以把这个也加进来，然后就把它做成一种装扮、收集，加更多的那种 **gamification** 进去。大家就可以从这种玩法上去做一些思考，就是你可能一开始你想做的东西只是一个跟大家差不多的，但是你看能不能怎么 **combine** 一些别的想法，就会有一些不一样的东西。

有提到这个转换模型询问。的确，这个也是我有时候会遇到的一个小问题。因为我要换模型做的话，通常情况下，我就真的就只能重头做，就是从头我再描述一遍我描述过的东西。但有的时候有一些 **bug**，或者有一些它钻到一些死胡同里的时候，我可能就只是换一个模型去让它修上一个模型没做好没做好的地方，或者是那些 **bug**。所以我也不太会给特别多的 **context**，我只是会描述说“我现在在做这个功能，它遇到了什么问题，它那边没做到，我想要什么”。有时候这样也够了。这个可能就是看你具体遇到什么问题，实际情况了。通常来讲就是给的 **context** 多一点，可能效果会好一点。

我讲一下商业化这个东西。商业化怎么说，一开始番茄时钟是一个已经比较成熟的市场或者产品类别了。大家怎么挣钱，大家收多少钱，大家有哪些功能，都是市面上已经有了，你很难做出来不一样。你当然可以卖得特别低，但是卖得特别低不一定好。所以比如说年度会员、终身会员，会员有什么功能，这些我基本上就是参照别的 App 他们怎么定价，他们有哪些功能，我就照着来就好了。我们唯一不一样就是我们的猫猫家具什么的都可以，如果大家想的话，可以花钱买，但其实也没有特别多的人花钱在买这个，相对比较少。所以一开始的想法就是这些。

运营的话，我刚才稍微也提到，我女朋友的那个插画号，主要靠这个，因为已经有粉丝了。上线前的那些视频又比较好，所以就知道大家是肯定会喜欢的。那之后的发展，我们最近的想法就是说，一个是看看尝试做周边。因为现在素材都已经有了，不管是家具、猫猫、贴纸、礼物的素材都有，只要把它做出来实物就可以。比如贴纸，最简单就是贴纸，然后或者是做些本子，做一些别的。这肯定是一方面。

将来可能如果更高级了，或者我们有钱了，就可能做一些硬件方面的东西。比如我们有个想法，是做一个手机支架，它里头可能有 **NFC** 的 **tag**，把手机放上去之后，自动就打开 App，然后自动开始专注，有点这种类智能化的感觉。看看大家可能也应该会喜欢。

然后从软件上来讲的话，我们一开始就只是想做番茄时钟。但现在因为大家可能更专注的点在我们这个 **IP** 这个猫猫，然后提供情绪价值这个方面。所以我们有可能就想说可以把它做得更延伸一点。比如我们可以有不同的场景，比如现在可能场景默认算是客厅。然后我们可能有一个卧室，有一个休息室之类的。卧室就可以切到卧室场景，就不是椅子，是床，然后你就是拿它用来当睡眠的一个入睡的东西。我们有用户已经在想拿它当睡眠在用。所以一开始我们连正计时都没有，正计时出来就是为了那个用户做的，因为倒计时不太好做睡眠。正计时它可以一直开着，然后它就可以提供猫咪的呼噜声。但可能将来就是把这个更完善一点，做一个单独的功能，也可以加冥想。那这样子，它就不再仅仅是一个番茄时钟，它有可能是一个有陪伴属性，帮你成长的一个 App 的感觉。那因为 App 属性不一样了，那自然能收的钱也更多。

到时候我们可能终身会员肯定会涨价，甚至可能 100 刀 200 刀都有可能。然后我们可能现在是主攻终身会员，那可能到时候就是主攻年度会员。因为我们提供的功能也多了，价值也多了，大家持续付费的意愿也肯定会更强。然后这样我们每年收个三四十美刀，五六十美刀，感觉也比较合理。就可能就会有一个更持续性的收入。

运营我也可以稍微提一下。我们现在主要靠发 **小红书**，我们自己发其实是一个很漫长的过程。而且我们发的视频经常会有手画的动画，就是很慢。我们可能一个月发两篇完整的视频，就很多了。但这个火不一定每个都火，所以就很慢。但更多的情况是说，会找一些 **influencer** 来帮忙做。那这就得花钱了，你花钱给他，然后他帮你拍。但这样子的话，如果你可以找到适合你的 **influencer**，就是他的审美、他平时发的内容、他的受众跟你产品的受众比较贴合。那你可能花个一两千，你可以挣回来两三千都有可能。那其实是一个你只要敢愿意花钱，你就肯定能挣钱的东西。但是这也看，有时候你也得找适合你的视频 **format**。尤其是像 **TikTok**，它就是大部分现在人做的流程，比如他请人做或者自己做，然后同时发二三十个视频，然后看哪个视频的曝光、流量比较好。然后根据那个视频的 **format** 再去找别的大的 **influencer**，可能有几万几十万的粉，然后让他们按照那个视频的 **format** 去做，就这么做起来的。

大概这就是我们将来会尝试的方向，在 **TikTok**。中国用户可能对我们现在都是中国用户了，玩法会不太一样。**小红书** 毕竟生态跟别的不太一样，我们还在摸索当中。但是请人做视频打广告这种就是大概都是这么个流程。我们现在就是全职在做，收入我刚才有稍微分享，我们现在上线四个月的话，收入大概是 2 万多加元，就是够生活了。但我跟我女朋友现在基本上还是靠存款的状态，也都是在全职在做，所以就是希望能做起来。

刚才有人提到台湾这个问题。对，我们台湾有在 **App Store** 发，有一些台湾用户看到他们有下载。但海外区基本上都是从零起步，进展比较缓慢，这个就是需要一个很长的时间。

另外还有一个点，就是说现在大家比较推崇的是说，你在做一个产品的时候，一边做一边发 **social media**，不管视频还是什么的，发你做的进展，你遇到的问题。但是我其实没有这么做，我知道应该要这么做，但我没有这么做。主要就是真的做起来之后，很难把那个脑子切换过来说“我今天应该发个什么东西，大家可能愿意看”，我就完全专注在跟 **AI** 交流这个事上，没有跳脱出来，比较难做到这个东西。但是 **building in public**，大家可以网上搜一下，讲这方面的东西很多了。

**主持人**: 但是你女朋友有发，其实你有一个很好的助手。

**Ryan**: 对对对，的确两个人同时在做这个东西，要比一个人要好很多。我俩可以分工一下，互相给意见、打气，的确是容易很多了。

### 总结与建议

**主持人**: 大家如果还有问题可以继续提问。其实我们时间也差不多了。非常感谢您的分享，非常 **inspiring**。你有很多想法，然后全都用把想法注入到代码里边。其实现在的技术壁垒已经被打破很多了，就是有好的审美和对生活方式的理解，加上边做边学，其实是完全可以让你做出这么一个很好的产品。

**Ryan**: 对，没错，是的。而且我说实话，你要是练手的话，你甚至你都不用想你要解决什么问题。你就找一个你常用的，你就抄就好了。反正你练手嘛，你先把你跟 **AI** 做东西这个流程跑一跑，感受一下，然后做出来你一个能自己用的东西，你也有成就感，然后你就更有兴趣去学。然后你做出来之后，你可以再想，就是说“我怎么把这个东西弄得不一样一点，加一些别的功能，跟别的想法融合结合一下”。就先从抄起步，也没关系。抄也是一个很好的方式，因为都是站在巨人的肩膀上。

**主持人**: 其实前人他也是抄的。

**Ryan**: 对对对，是的，都是互相结合一下。

**Flash**: 他有一个个人的建议，他说“虽然现在进展不错，但要开始做减法，建议功能要收敛，不管运营成本还是开发成本，都会降下来，可以集中注意力”。

**Ryan**: 对，我觉得这个说得很好，就是一定要克制了。我刚才说的那些未来想做的功能，至少是半年之后的事了。这半年之内我们想做的一个实际的主打功能是给猫猫换肤。现在的猫，一只猫它就长那样子，就不能变了。我们将来可能会出，比如说我们出一只奶牛猫，然后你可以给它换，就是我脸白一点，或者是我脚白一点，我左脚白的，右脚白的这种。这样子的话，好处就是大家可以真的根据自己家里的猫或者做一个定制，就更贴近一点。因为我们也没有办法做真的定制化。有人提过说能不能加 **AI**，然后拍个照，然后 **AI** 生成猫出来，但是这个真的有点困难。因为首先我们也不想用 **AI** 去画画这个事，其次 **AI** 的确没有办法很好地把我女朋友的画风展现出来。**AI** 画动画，这个基本上没有办法很流畅地弄出来。所以就算是折中吧，就是加一些这种有点定制的感觉。这个也是我们主要是想集中在这个玩法上面。番茄时钟 App 功能本身基本上就做得差不多了，还会再加，但他已经不是重点了。重点是怎么把这个 App 弄得更有意思一点。

像我刚才说的那种不同的场景，我觉得这个倒不觉得是特别大的一个东西。的确我一开始有点不想把这个 App 做大，但后来又感觉它挺有潜力的。而且如果我们分成了三个几个不同的 App，这些 App 之间的 **IP** 串联，比如说我在这个 App 上买了猫了，那个能不能用，就这种就会比较困难。所以就想说还是在一个上比较好一点。但的确不想让这种操作太复杂，这些就可能我到时候就真的得在 **Figma** 里画好了，我再跟 **AI** 讲，就不能边做边讲了，这个就有点困难了。

**主持人**: **Flash** 的不是问题，他跟我们告别。那今天希望大家听完都有所收获，回去也可以开始自己的项目。

**Ryan**: 对，希望大家能帮助到大家。大家如果之后有问题的话，欢迎私信我，怎么样的都可以。如果你想跟我深入探讨一下，也可以私信我约时间，我很乐意跟大家分享。

**主持人**: 如果有想跟 **Ryan** 深入交流或者合作的朋友，都可以在社群里面私信他。但要记住，我们社群有一个原则，就是要互相受益，我们都要尊重对方的时间。好，那今天的直播就到这儿，希望大家回去能做自己的产品。谢谢大家，我们今天就到这儿，谢谢大家。拜拜。