我尝试用AI构建一个真正的应用,花了一整年

Hacker News Top 新闻

摘要

一位开发者讲述了他用AI开发习惯追踪应用的一年历程,揭示了尽管最初预期很简单,但实际所需的复杂性和时间远超想象。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/07/24 14:01

# 我尝试用AI构建一个真正的应用程序。花了整整一年。| Alex Hyett 来源:https://www.alexhyett.com/videos/tried-building-app-with-ai-it-took-a-year 2026年7月17日 - \#ios (https://www.alexhyett.com/tags/ios/) \#ai (https://www.alexhyett.com/tags/ai/) \#编程 (https://www.alexhyett.com/tags/programming/) Alex Hyett 订阅以免错过新视频 我和妻子一直在寻找一款可以追踪习惯、爱好以及上次做某件家务的应用程序。 说实话,App Store 上可能有上百种不同的习惯追踪器。仅次于待办事项类应用,它们被认为是最好创建的应用,所以有这么多选项并不令人意外。但我们一定试过几十款不同的应用,却没有一个完全符合我们的需求。 当然,现在我们有 AI 了,这类事情应该很容易搞定。你只需写几个提示词,AI 就会在你睡觉或在沙滩上啜饮鸡尾酒时为你构建好。 但正如我们将要看到的,结果并非如此。 ## 需求与现有应用\# (https://www.alexhyett.com/videos/tried-building-app-with-ai-it-took-a-year#requirements-and-existing-apps) 对于这款应用,我提了一些需求: 1. 我们希望习惯以长列表的形式显示,而不必翻过多页才能找到它们。 2. 我们不希望任何数据存储在云端或他人的服务器上。 3. 我们希望可以使用 iOS 18 中的 gen-emojis(生成式表情符号)作为部分图标。当预定义图标不合适时,这是一个很好的选择。 4. 我们需要能够按天、周或月设定目标。 5. 应该可以没有目标,只记录发生次数。我妻子有时会头痛,所以她希望也能记录这些情况。 6. 我们希望可以添加备注。我想记录每次锻炼中做的动作,以及练吉他时某首曲子达到的速度。 7. 我们希望可以为习惯设置提醒,可以是每天,也可以是每周或每月的特定日期。 这份清单里没有任何特别突破性的东西,所以我看了下各种选项,看看有没有能直接用的,省得我自己去开发。 我们首先尝试了 Streaks 应用。这是 iOS 上完全免费的应用,甚至还集成了 Apple Health。 它满足了我大部分需求,但无法实现清单中的一些要求: - 应用以页面形式展示,而不是长列表。当你要追踪 20 件事时,翻来翻去就变得很繁琐。这款应用曾获得设计奖,所以这大概是我自己的问题。 - 我妻子找不到适合她想做的事情的图标。所以我们希望能自己创建图标。 - 无法记录发生次数。你必须设定每天要做几次,但如果你在记录头痛,这就不太理想,因为理想情况下你根本不希望有头痛。 - 她还意识到需要一种关闭连续打卡记录的方式。连续打卡并不总是对所有追踪内容都有帮助。 我们还尝试了另外几款应用。有一款叫 HabitKit 的挺流行,另一款叫 Grit。我很喜欢 HabitKit 那种 GitHub 风格的贡献图,但我妻子不是开发者,对此并不太在意。Grit 可能是最接近我们需求的应用,但仍然缺少一些功能。 说实话,如果不是因为价格,HabitKit 或 Grit 对我的需求来说已经很满意了。 我并不介意为应用付费。我的手机上有不少买过的应用,桌面上也有付费软件。我非常支持独立开发者,但我也记得 iPhone 应用曾经只是一杯咖啡的价格。 而 Grit 每月收费 9.99 英镑,或者每年 29.99 英镑。也可以购买终身许可,但价格高达 44.99 英镑——这几乎是一款主机新游戏的价格了。 HabitKit 的情况类似,但稍微便宜些:每月 1.99 英镑,或每年 11.99 英镑,终身选项 29.99 英镑。 也许我只是个小气鬼,但我不想再给我的预算增加更多的订阅了,我已经有够多的了。 于是,我决定在 AI 的帮助下自己构建一个。 我从去年三月开始这个项目。Cursor 当时在免费赠送积分,这正是一个看看 AI 能力的好机会。在那之前,我基本只在简单的聊天问题上使用 AI。由于我从未用 Swift 开发过任何东西,我需要所有能得到的帮助。 我们决定将其命名为 HabitTed (https://habitted.app/),我妻子甚至设计了可爱的熊 Logo。 ## AI 开发流程\# (https://www.alexhyett.com/videos/tried-building-app-with-ai-it-took-a-year#ai-development-process) 如果你以前没有开发过 iOS 应用,想要在模拟器上测试和调试,基本上只能用 Xcode。所以,Curosr 和 Xcode 之间来回折腾了不少,才把一切设置好。 那时 Claude Code 还没发布,所以还不是完全由 AI 全自动、不插手的工程。相反,我把开发拆解成许多小任务,然后用 AI 逐个手动处理,每做一次改动就测试一下。 我从一个简单的 Hello World 应用开始,然后添加了习惯列表、添加习惯、编辑习惯等功能。 公平地说,经过一个周末大约 6 个小时的工作,我做了一个看起来能用的应用。它还没实现我所有想要的功能,但你可以创建带自定义图标的习惯、点击完成、支持各种目标选项,甚至还有 iCloud 同步。 尽管我有了一个能工作的东西,而且只花了 6 个小时,但我不能说是愉快的 6 个小时。 通常我完成一个项目时,会为自己取得的成果感到骄傲。即使遇到问题、花的时间比预期长,我也会在结束时学到新东西。 那些失败教会了我一些东西,开发过程中的挫折通常到最后都是值得的,至少我学会了不再犯同样的错误。 然而,6 个小时后,我不觉得自己学到了多少 Swift 开发知识。 每当有错误时,我发现自己会复制粘贴错误信息,让 AI 去尝试修复。我对 AI 不够好、无法解决问题感到恼火,同时也对自己也无法解决感到恼火。 ## 问题\# (https://www.alexhyett.com/videos/tried-building-app-with-ai-it-took-a-year#the-problems) 尽管我之前没写过 Swift,但我用过许多其他语言,看代码时我能看出这段代码质量不高。 每个视图都差不多有 1000 行代码。Xcode 的编译器处理不了这么长的文件,总是提示我拆分。像看起来相同的按钮,在不同视图中的样式代码却完全不同。整件事一团糟。 于是,我决定不依赖 AI 来收拾烂摊子,而是自己手动、老派地进行重构。我把所有东西移到独立的视图,每个不超过 100 行,并修复了所有不一致的代码。 之后我进一步测试应用,确保所有功能正常,结果发现了更多问题。 我发现 iCloud 同步实际上并不工作。它可能把数据同步到了 iCloud,但如果你卸载应用再重装,所有数据都会丢失。 我还发现,一旦我在习惯中添加了大量完成记录,程序开始变得很慢。我意识到详情页面上的统计数据每次打开页面都会遍历所有习惯来计算。 我在习惯上创建了一些属性来存储统计数据,并将计算移到习惯完成时进行。然后我意识到数据模型过于复杂,命名也很奇怪。这促使我制定了数据迁移计划,否则每次更改 schema 习惯都会出问题。 一切修复完毕后,我添加了一些缺失的功能,比如提醒和不同的目标选项。 然后,iOS 26 发布了。 我不确定苹果在开发中是否大量使用了 AI,但 iOS 26 有很多 Bug。 我真的很不喜欢玻璃效果,所以打开了“降低透明度”辅助功能选项,这在我的应用中引起了很多问题。 我到处都使用深色模式,但打开一个习惯时,标题栏变成了白色,文字也变白了,什么都看不清。 这正是 AI 最不靠谱的地方。iOS 26 刚发布,AI 无法提供任何与新变化相关的帮助。我甚至试图说服它 iOS 26 是最新版本,它却告诉我一定是搞错了。 最终,我通过阅读其他开发者的博客文章解决了一些问题,苹果也最终在 26.1 中修复了透明度 Bug。 ## 结果\# (https://www.alexhyett.com/videos/tried-building-app-with-ai-it-took-a-year#the-result) 所以,经过数月的开发,再加上更长时间的测试,我终于有了一款我足够满意、愿意署上自己名字的应用,而且代码我也乐意继续维护。 发布应用不仅仅是应用本身,你还需要制作网站和应用截图,这些都比你预期的时间要长得多。 如果你愿意试试,这款应用已经在 App Store (https://apps.apple.com/gb/app/habitted-habit-tracker/id6742742903) 上架了,我会在描述里留下链接。免费使用(最多 6 个习惯),如果你愿意支持我,可以用一杯咖啡的价格解锁所有功能。 如果没有 AI,我可能一开始就不会开始这个应用,所以对此我心存感激。 另一方面,如果我根本没有使用 AI,我会学到更多东西,而且也不用花几个月的时间清理代码库并修复所有 Bug。 6 个小时后,AI 产生了一个可用的东西,但深入审视后,它是一团糟。AI 编码可以做到 80%,但最后的 20% 会耗费你 80% 的时间,如果你不理解它写了什么,甚至更久。 相比一年前,现在的 AI 能力更强了,但也更贵了,而且它并不能解决你通过使用它而自身没有学到任何技能的事实。如果 Claude 宕机后你就不能工作,那你对 AI 的依赖就太多了。 我很好奇几年后这个行业会变成什么样。没有初级开发者被雇佣,因为公司都依赖资深开发者用 AI 完成所有工作。 与此同时,资深开发者分成了两派。 一半人几乎事事都用 AI,却在慢慢丧失自己的编码能力。就像温水煮青蛙,等意识到已死时已经太晚。 另一半人则对 AI 感到厌烦,因为每天都要写提示词而精疲力竭,再也不想做下去。 如果 AI 泡沫最终破灭,我不确定是否还有足够有能力的开发者愿意收拾残局。花时间清理那些你一开始就不想写的 AI 垃圾听起来可一点都不有趣。 无论你站在哪一边,确保自己别在热水中待得太久。 想与这篇文章互动?本网站支持 webmentions,你可以通过你的网站发送 webmention 来点赞、评论或转发。你也可以在 Bubbles 上为这篇文章投票。 你还可以通过点赞和评论 Mastodon 上的这篇文章 (https://social.alexhyett.com/@alex/statuses/01KXQXF3KWESBPN5Z28AR0ZVCV) 来互动。只需复制文章 URL (https://social.alexhyett.com/@alex/statuses/01KXQXF3KWESBPN5Z28AR0ZVCV) 并将其粘贴到 Mastodon 搜索栏中即可找到。出于隐私原因,Mastodon 上的评论不会显示在下方。

相似文章

五天前,我从未构建过Reddit应用

Reddit r/openclaw

一位开发者讲述了如何在五天内利用AI从零构建一个Reddit应用,认为AI的主要价值在于降低从想法到原型的门槛,奖励好奇心而非技术专长。