乐于分享
好东西不私藏

挑战Vibe Coding 3小时手搓APP~AI足够强大了吗?

挑战Vibe Coding 3小时手搓APP~AI足够强大了吗?

3小时是个噱头,但也不全是。

这是我开始这个项目时给自己定下的目标——晚上7点半突然有了想法,而我打算10点半睡觉。

项目的起因是上周在财新上看到一篇关于AI时代如何教育孩子的文章。作为一个有AI焦虑的人,我当然想把焦虑传递出去😹。但财新不让转发,只能一张张截图,太麻烦了。想起之前用过一款付费工具,可以把滚动录屏拼成长图,很好用,但后来删了,也不想再付钱。正犹豫要不要放弃时,突然冒出一个念头:为什么不自己做一个?
其实这个想法并非一时冲动。市场上充斥着各种AI焦虑:既有担心错过投资浪潮的FOMO,也有对估值泡沫的警惕,还有最近对AI破坏产业价值的恐惧。AI到底有多强?这些担忧有多少是合理的?凭空臆测不如动手验证。如果AI能在3小时内做出一个APP,说明小规模软件开发已可被替代,大规模替代也许只是时间问题,并无本质壁垒。
于是我决定用视频转长图这个项目做个测试——它足够具体、实用,不复杂也不简单。

第一天(晚上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给出十条改进意见:

  1. 修复坐标系反转
  2. 修正图像条绘制方式
  3. 扩大重叠区域搜索范围
  4. 提高重复帧判定阈值
  5. 优化自适应采样间隔
  6. 磁盘缓存降低内存占用
  7. 添加视频类型预检测
  8. 改进页眉页脚检测
  9. 提高预览图清晰度
  10. 解除输出高度限制

做完并没明显改进。仅靠现象提示已经不够了。

这是这次运行的日志和图片结果。

AI噼里啪啦一通修改。

还是同样的问题,这是新日志。

AI略带歉意地继续改。

没改好,看新日志。

AI百思不得其解,又乱改了一些。

更差了,新日志。

AI大脑开始精神分裂。

让我仔细检查…应该是对的…啊我确信发现问题了!…等等我想错了…上下文有点乱…我需要重新理清思路…让我从头开始…我得从git恢复上一个版本…让我删除这个文件…我得重写这个函数…

就这样到了晚上10点半,我承认3小时挑战失败。AI在UI框架搭建上很高效,但核心功能没做好,还无法独立处理复杂算法问题。

不想放弃。很喜欢ScrollSnap这个名字和图标,也很需要这个功能。

我最想知道还要多久能做好。

感觉已经近在咫尺。

第二天

Vibe Coding常让人有赌博或游戏成瘾的快感。你不用思考,只需提要求,输入提示词就像拉老虎机,AI不停吐出token。有时是惊喜,一句话变成意想不到又合理的功能;有时又失望,明明说修好问题,结果却没有,甚至带来新问题。像赌博一样,你总觉得奇迹会在下一次发生,重要的是别停下。

这次我对让AI自己爬出泥坑失去信心,决定动手帮它一下:

你需要做这几步:

  1. 检测视频中的滚动和不动区域(页眉页脚、悬浮按钮)
  2. 找到仅包含滚动区域的最大矩形
  3. 用这个矩形作为遮罩提取每一帧的滚动内容
  4. 将这些滚动内容拼接成长图

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软件开发,可以参考:

  1. 项目初始化与基础功能(2026-02-26)
    • 创建仓库。
    • 实现MVP:视频导入、自动拼接、裁剪、保存/分享、图片库、现代UI、iOS 18适配。
    • 拼接算法初步实现,支持自适应采样、排除重复帧、自动检测滚动区域。
    • 增加法律文档(ToS/隐私政策)及设置入口。
    • 导入logo并设置为app icon,优化UI标题。
  2. 体验与UI优化(2026-02-26 ~ 2026-02-27)
    • 移除裁剪功能,优化结果预览和操作按钮布局。
    • 改进保存/分享按钮样式、交互和可见性。
    • 优化图片库卡片点击、导航栏操作、删除确认。
    • 修复拼接方向、内容重复、缺失等问题,完善调试日志。
    • 解决CG坐标系翻转、Vision API兼容、异步帧生成等兼容性问题。
  3. 拼接算法迭代与调优(2026-02-27)
    • 多次重写VideoStitchingService,尝试多种拼接算法(NCC、MAE、Vision特征点、光流、RANSAC等)。
    • 自动检测滚动带、排除静态头/底栏、检测home indicator。
    • 增加调试日志、性能分析、错误处理。
    • 完善帧采样、带宽检测、拼接带定位、动态间隔自适应。
    • 解决重复内容、内容缺失、拼接带错位、滚动速度不均等问题。
  4. 交互工具与可视化(2026-02-27 ~ 2026-03-01)
    • 增加重叠区域预览工具,支持滑块/时间轴调节、可视化拼接带。
    • 优化预览透明度、标注、对齐方式,提升可读性。
    • 增加“查找稳定起点”功能,辅助用户避开UI动画干扰。
    • 引入Photos风格视频时间轴裁剪控件,支持拖动耳朵、弹窗缩略图、原生比例、蓝色耳朵等细节。
  5. 拼接流程与性能优化(2026-03-01)
    • 固定帧采样间隔,移除自适应采样逻辑,支持精确/快速两种模式。
    • 增加滚动条检测与移除(按seam逐段处理),避免拼接结果出现滚动条。
    • 优化拼接流程进度提示,简化为“对齐滚动帧/合成最终图片”两阶段。
    • 修复拼接带宽、内容重复、帧采样等细节问题。
  6. 图片库与导出体验(2026-03-01)
    • 优化图片库缩略图布局、固定高度、容器驱动布局。
    • 图片命名支持递增编号(Image 001起),导出时使用displayName。
    • 支持手动保存到相册,移除自动保存逻辑。
    • 解决横屏图片拉伸、缩略图溢出等UI问题。
  7. 支持与设置(2026-03-01)
    • 增加咖啡主题打赏(IAP),支持者徽章、咖啡数量统计、emoji展示。
    • 优化打赏按钮样式、文案、早期加载产品信息。
    • 设置页支持英雄区、徽章、评价入口、无导航标题。
  8. App Store与基础设施(2026-03-01)
    • 提供中英文App Store文案、关键词、推广语。
    • 基础设施部署(Terraform、CI/CD、网站、域名、证书、邮箱转发)。
    • 法律文档网页化,App内跳转至官网。
    • 网站logo、截图处理、自动化脚本等。
本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » 挑战Vibe Coding 3小时手搓APP~AI足够强大了吗?

评论 抢沙发

6 + 7 =
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
×
订阅图标按钮