乐于分享
好东西不私藏

45分钟“搓”出梦中情App:我是如何用AI实现“Vibe Coding”的?

45分钟“搓”出梦中情App:我是如何用AI实现“Vibe Coding”的?

上个周末,我在山景城的 Social Science FOO Camp 参加了一场别开生面的“非会议(unconference)”。在这种场合,任何人都可以随时上台分享。我临时抢了个位置,题目定为《LLM 现状:2026年2月版》,副标题是——“自去年11月以来,一切都变了!”

为了让这场演讲更出彩,我决定在演讲前一晚,用 AI “搓”一个专属的 macOS 演示应用。

为什么我不选 Keynote?

在过去几年里,我一直在密切关注 LLM 的飞速进化。从 2023 年到 2025 年,技术更迭的速度甚至让我随身穿的 Gemini 3 纪念衫在短短几周内就因为 Gemini 3.1 的发布而显得“过时”了。

在演讲这件事上,我有个原则:一定要包含一个 STAR Moment(Something They’ll Always Remember,让人永生难忘的瞬间)。

通常我用 Keynote,但有时我更喜欢直接展示网页。以往的方法是打开一堆浏览器标签页逐个切换,但这有个致命弱点:万一浏览器崩了,我的演示就全完了!虽然我有备份链接,但在讲台上忙乱地重开网页显然不是什么好体验。

45分钟诞生的 Present.app

于是,我向 AI 下达了指令。我把这个应用命名为 Present。它基于 Swift 和 SwiftUI 构建,非常轻量——解压后只有 355KB,压缩包甚至只有 76KB。这就是原生应用的魅力!

我的核心需求非常直接:

  • 左侧是一个可以添加、删除和排序 URL 的列表。
  • 右侧是网页预览区。
  • 点击“播放”,应用进入全屏,可以用左右方向键切换网页。

令人惊讶的是,即使我不精通 Swift,AI 也只用了不到 45 分钟就帮我实现了这一切。它甚至具备了自动保存功能——如果应用崩溃,重启后所有链接和进度都会瞬间恢复。

进阶玩法:手机变成远程翻页笔

基础功能搞定得太快了,我决定再加点猛料。我希望能用手机控制电脑上的幻灯片。

我给 AI 发了新指令:“增加一个监听 9123 端口的 Web 服务器,提供一个手机适配的控制界面,包含‘上一页’、‘下一页’和‘开始演示’按钮。”

配合 Tailscale(一种虚拟组网工具),无论我在哪,我的手机都能通过私有 IP 访问这个控制台。最终的界面长这样:

除了翻页,我还让 AI 增加了一个神奇的功能:远程滚动条。在手机上滑动,电脑上的网页也会随之上下滚动。这完美解决了网页内容过长、演讲时需要翻页查看下方信息的问题。

深挖代码:AI 是如何工作的?

代码跑通后,我并没有就此罢休,而是让 AI 给我做了一个“代码导读(Linear Walkthrough)”。

我惊讶地发现,为了实现远程控制,AI(在这里我使用了 Claude Code)竟然没有调用任何笨重的第三方库,而是直接使用 Socket 编程 手写了一个微型 HTTP 解析器!

// AI 手写的极简路由逻辑
private func route(_ raw: String) -> String {
    let firstLine = raw.components(separatedBy: "\r\n").first ?? ""
    let parts = firstLine.split(separator: " ")
    let path = parts.count >= 2 ? String(parts[1]) : "/"

    switch path {
    case "/next":
        state?.goToNext()
        return jsonResponse("ok")
    case "/prev":
        state?.goToPrevious()
        return jsonResponse("ok")
    // ... 更多逻辑
}

虽然这种简单的 GET 请求存在 CSRF 安全漏洞,但作为一个私人使用的工具,这完全可以接受。这种“刚刚好”的工程实践,正是 AI 辅助开发的魅力所在。

什么是“Vibe Coding”?

最近“Vibe Coding(氛围编程)”这个词很火。它指的是开发者不再纠结于具体的语法细节,而是通过表达意图、调动 AI 代理来快速构建工具。

这次经历带给我几点启发:

  • 语言不再是障碍:我并不精通 Swift,但它是开发 macOS 原生应用的最佳选择。有了 AI,我可以直接调用这种能力。
  • 解决真实问题:这不是一个玩具,它解决了我多年来在演讲时的痛点。
  • 经验依然重要:虽然 AI 写了代码,但我知道如何配置 Xcode,知道如何使用 Tailscale 解决网络穿透,也知道如何引导 AI 优化架构。

原生开发者并不会因此失业。相反,对于我们这些有经验的软件工程师来说,AI 极大地扩展了我们的疆界。下次当你需要一个特定的小工具时,不要犹豫,试着去“搓”一个吧!

本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » 45分钟“搓”出梦中情App:我是如何用AI实现“Vibe Coding”的?

评论 抢沙发

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