开场与嘉宾介绍
主持人: 大家好,我是 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 深入交流或者合作的朋友,都可以在社群里面私信他。但要记住,我们社群有一个原则,就是要互相受益,我们都要尊重对方的时间。好,那今天的直播就到这儿,希望大家回去能做自己的产品。谢谢大家,我们今天就到这儿,谢谢大家。拜拜。