挑战Vibe Coding 3小时手搓APP~AI足够强大了吗?
3小时是个噱头,但也不全是。
这是我开始这个项目时给自己定下的目标——晚上7点半突然有了想法,而我打算10点半睡觉。
第一天(晚上7点半)
开发环境是VSCode+Copilot。
第一条提示词主要告诉AI我的需求、场景和希望的功能。让AI先用规划模式,要求它仔细思考,不要急于动手,毕竟任务不算简单。
我想为iOS应用中的长页面内容生成截图。操作方式:先录制一段屏幕滚动视频,然后通过这个应用加载视频,无缝拼接成一张完整的长图。请帮我设计这个应用的功能和用户体验。我希望它足够简洁——用户只需导入视频,一键生成图片,需要时可以裁剪垂直区域,最后保存到相册或分享出去。应用会自动保留生成过的图片,形成一个小型图库。这是一个即用即走的轻量工具。界面要现代精致,原生适配iOS 18.0及以上版本,深色浅色模式自动跟随系统。
在AI思考的过程中,让Gemini帮忙起个名字。从一众VideoStitch、Tallie、PaperRoll中间,我选了ScrollSnap,不容易重名也最贴切。
AI输出的计划如下:
在SwiftUI启动应用中构建单一功能流程:从相册导入视频,通过自动垂直对齐处理成长图,生成后可选择裁剪,然后保存/分享。保持轻量的应用内生成记录库,并在权限允许时默认自动保存到相册。这确保了用户体验快捷(”打开 → 处理 → 完成”),同时支持所需的控制功能(裁剪+分享+历史记录),避免过度构建设置或编辑工具。……
需求理解准确,任务分解也合理,就让它直接写代码了。
5分钟后第一个版本出来了。确实如计划,有三个标签页:处理、图片库、设置。处理页有按钮导入视频,图片库页显示生成图片,设置页有自动保存开关。看着都不错。
但第一个标签页多了两个滑动条,让用户选择视频采样间隔和图像匹配精度阈值。这是技术参数,不该让用户操心。告诉它:
我希望拼接过程全自动,一键完成。用户无需调整任何参数。
AI于是去掉了参数,努力采用合适的默认值。
提要求太容易了,我又加码:
应采用自适应采样间隔,不设最大采样帧数,完整处理整个视频。输出质量优先,其次才是处理速度。
有些AI没想到的,我得提醒:
你处理的视频可能包含固定的页眉和页脚,这些并非滚动部分,应当被移除。只应将滚动部分拼接成最终图片。
到这里能看到结果了:

有点问题,但先不急着改,还有别的事要做。
让豆包做个图标。
为一款名为”ScrollSnap”的应用设计一个Logo,该应用通过拼接滚动屏幕视频来创建长截图。设计应简洁直观,具有苹果官方应用Logo的风格。

有点意思,但太简陋。换千问试试。

创意不错,但太杂乱。我很喜欢这个S形状,改下提示词:
画一个iOS app logo,包含一个长网页截图构成的S形卷轴

思路对了,但不够美观。再试试豆包。

眼前一亮,就它了,完美。
接下来:
创建服务条款和隐私政策,条款保持简洁。让用户在设置菜单中可以查看。
移除裁剪功能,该操作可在相册中完成。图片预览全宽显示在结果框,保存和分享按钮以纯图标形式固定在右上角,图片向上滚动超出屏幕时,这两个按钮应固定在屏幕顶部。
保存和分享用标准iOS按钮,保存按钮在左侧。滚动时画面闪烁严重,请优化。
为按钮添加标签,并让它们适应结果框头部区域。库中图片按顺序命名。删除操作需增加确认提示。
按钮固定时几乎看不见。加载新视频时,应清除之前的结果。
点击库中图片有时没反应。将所有操作移至导航栏,显示分享按钮,并将保存和删除操作折叠到”…”菜单中。
终于把视觉和交互相关的小问题都解决了,接下来是核心功能的问题。
修复生成附图的视频拼接服务。生成的图片倒置,包含大量重复内容,并且遗漏了很多长文本内容。请从算法角度重新思考:如何移除视频中可能存在的页眉和页脚,正确捕捉实际内容而不遗漏或重复;如何优化内存和处理时间。针对长滚动网页优化。如果容易实现,请检测非此类视频并警告用户可能出现不良结果。

AI给出十条改进意见:
修复坐标系反转 修正图像条绘制方式 扩大重叠区域搜索范围 提高重复帧判定阈值 优化自适应采样间隔 磁盘缓存降低内存占用 添加视频类型预检测 改进页眉页脚检测 提高预览图清晰度 解除输出高度限制
做完并没明显改进。仅靠现象提示已经不够了。
这是这次运行的日志和图片结果。
AI噼里啪啦一通修改。
还是同样的问题,这是新日志。
AI略带歉意地继续改。
没改好,看新日志。
AI百思不得其解,又乱改了一些。
更差了,新日志。
AI大脑开始精神分裂。
让我仔细检查…应该是对的…啊我确信发现问题了!…等等我想错了…上下文有点乱…我需要重新理清思路…让我从头开始…我得从git恢复上一个版本…让我删除这个文件…我得重写这个函数…
就这样到了晚上10点半,我承认3小时挑战失败。AI在UI框架搭建上很高效,但核心功能没做好,还无法独立处理复杂算法问题。
不想放弃。很喜欢ScrollSnap这个名字和图标,也很需要这个功能。
我最想知道还要多久能做好。
感觉已经近在咫尺。
第二天
Vibe Coding常让人有赌博或游戏成瘾的快感。你不用思考,只需提要求,输入提示词就像拉老虎机,AI不停吐出token。有时是惊喜,一句话变成意想不到又合理的功能;有时又失望,明明说修好问题,结果却没有,甚至带来新问题。像赌博一样,你总觉得奇迹会在下一次发生,重要的是别停下。
这次我对让AI自己爬出泥坑失去信心,决定动手帮它一下:
你需要做这几步:
检测视频中的滚动和不动区域(页眉页脚、悬浮按钮) 找到仅包含滚动区域的最大矩形 用这个矩形作为遮罩提取每一帧的滚动内容 将这些滚动内容拼接成长图
AI说这是个好主意。不管你的方法多烂,它都会这么说。
这样做确实比之前有进步。经过AI修改,简单情况下可以正常输出长图了。
我说的是简单情况下。
实际情况比这复杂得多:
视频可能包括不同APP间切换的多段场景 页眉页脚可能不是完全静止,可能自动收起或展开 悬浮图标大小形状不一,不能完美识别 屏幕上可能有其他移动目标或干扰元素
就这样,花了整个白天喂给AI各种错误,要求它优化处理复杂场景,但像掉进了无限循环的兔子洞。
我好奇别人怎么做。看了几个类似APP,多数并不干净。但有一个给了我启发:其实不需要找到最大的干净矩形,只要有一个干净矩形就够了,原则上所有有效内容都会经过这个矩形。
这个矩形可以是屏幕中央的一块固定区域。这样天然避开了页眉页脚和悬浮图标,因为它们大多在屏幕两端。
可以把视频想象成一副叠在一起的扑克牌,每一帧就是一张牌。制作长图的过程,就像把扑克牌部分重叠地展开。我们把上一张相对下一张垂直滑动,直到内容重叠部分完全对齐,然后粘在一起。不断重复,直到所有牌都展开成长长一条,就得到一张长图。
把这个思路告诉AI,它又夸奖说很棒。我用GPT试了几次,总有纰漏。后来换Gemini,一次成功了。
这时是晚上10点。核心功能做好,APP算是大致完成。

3小时没完成的任务,24小时完成了。虽然比预期久,虽然还需人工干预,但AI对软件开发的影响已势不可挡。软件开发的门槛大大降低,迭代速度加快,不出意外手写代码很快会成为历史。
我想AI的破坏力大概率是真实的。IT企业不再能靠开发复杂度做护城河,更多壁垒来自网络效应、生态、内容、渠道、客户资源等。AI原生IT企业会有不同组织形式,少量人指挥大量智能体,消耗大量算力。未来企业的效率可能是用人均用电量来评价了。
软件本身也会变成另一种形态。预制软件可能和预制菜一样不再受人欢迎。与其去试错寻找一个凑合能用的软件,不如量身定制一个。软件像脱水蔬菜,被压缩成一条Prompt。人们按需修改,用时让AI解码恢复出来。未来的PaaS可能是Prompt as a Software/Service。甚至以后不再有供人类使用的软件,只需吩咐AI:“想办法帮我把财新这篇文章分享给……”。
我怀疑现在读计算机专业还是不是个好选择。
后记
能用到能交付还有一天的距离。但眼已瞎,第三天只能休息。
第四天把APP提交到应用商店审核。收尾工作还不少:用户体验细节优化、更多内容场景测试、收入模式选择、App Store上架准备等。这些繁琐但不复杂,AI都能轻松搞定。
第七天,APP上架了,免费,把内卷继续到底~
免费下载地址(点击阅读原文):
https://apps.apple.com/app/id6759849068
仓库地址:
https://github.com/dodid/scrollsnap
最后让AI总结一下项目各阶段主要工作。如果刚开始接触AI软件开发,可以参考:
-
项目初始化与基础功能(2026-02-26) -
创建仓库。 -
实现MVP:视频导入、自动拼接、裁剪、保存/分享、图片库、现代UI、iOS 18适配。 -
拼接算法初步实现,支持自适应采样、排除重复帧、自动检测滚动区域。 -
增加法律文档(ToS/隐私政策)及设置入口。 -
导入logo并设置为app icon,优化UI标题。 -
体验与UI优化(2026-02-26 ~ 2026-02-27) -
移除裁剪功能,优化结果预览和操作按钮布局。 -
改进保存/分享按钮样式、交互和可见性。 -
优化图片库卡片点击、导航栏操作、删除确认。 -
修复拼接方向、内容重复、缺失等问题,完善调试日志。 -
解决CG坐标系翻转、Vision API兼容、异步帧生成等兼容性问题。 -
拼接算法迭代与调优(2026-02-27) -
多次重写VideoStitchingService,尝试多种拼接算法(NCC、MAE、Vision特征点、光流、RANSAC等)。 -
自动检测滚动带、排除静态头/底栏、检测home indicator。 -
增加调试日志、性能分析、错误处理。 -
完善帧采样、带宽检测、拼接带定位、动态间隔自适应。 -
解决重复内容、内容缺失、拼接带错位、滚动速度不均等问题。 -
交互工具与可视化(2026-02-27 ~ 2026-03-01) -
增加重叠区域预览工具,支持滑块/时间轴调节、可视化拼接带。 -
优化预览透明度、标注、对齐方式,提升可读性。 -
增加“查找稳定起点”功能,辅助用户避开UI动画干扰。 -
引入Photos风格视频时间轴裁剪控件,支持拖动耳朵、弹窗缩略图、原生比例、蓝色耳朵等细节。 -
拼接流程与性能优化(2026-03-01) -
固定帧采样间隔,移除自适应采样逻辑,支持精确/快速两种模式。 -
增加滚动条检测与移除(按seam逐段处理),避免拼接结果出现滚动条。 -
优化拼接流程进度提示,简化为“对齐滚动帧/合成最终图片”两阶段。 -
修复拼接带宽、内容重复、帧采样等细节问题。 -
图片库与导出体验(2026-03-01) -
优化图片库缩略图布局、固定高度、容器驱动布局。 -
图片命名支持递增编号(Image 001起),导出时使用displayName。 -
支持手动保存到相册,移除自动保存逻辑。 -
解决横屏图片拉伸、缩略图溢出等UI问题。 -
支持与设置(2026-03-01) -
增加咖啡主题打赏(IAP),支持者徽章、咖啡数量统计、emoji展示。 -
优化打赏按钮样式、文案、早期加载产品信息。 -
设置页支持英雄区、徽章、评价入口、无导航标题。 -
App Store与基础设施(2026-03-01) -
提供中英文App Store文案、关键词、推广语。 -
基础设施部署(Terraform、CI/CD、网站、域名、证书、邮箱转发)。 -
法律文档网页化,App内跳转至官网。 -
网站logo、截图处理、自动化脚本等。
夜雨聆风
