我尝试用AI构建一个真正的应用程序。花了一年
我尝试用人工智能构建一个真正的应用程序。花了一年的时间。75. 3 k订阅者订阅这样您就不会错过新视频我和妻子一直在寻找一个应用程序来跟踪习惯、爱好以及我们上次做某些家务的时间。老实说,App Store上可能有数百种不同的习惯追踪器。
仅次于待办事项列表应用程序,它们应该是最容易创建的应用程序,因此有这么多选项并不奇怪。但我们肯定尝试过数十种不同的应用程序,但没有一个完全适合我们正在寻找的应用程序。当然,现在我们有了人工智能,所以这种东西应该很容易创建。
当你睡觉或在海滩上喝鸡尾酒时,你只需正确几个提示,人工智能就会为你构建它。正如我们将要看到的那样,事情并没有完全变成那样。要求和现有应用程序#所以对于这个应用程序我有一些要求:- 我们希望将这些习惯列在一长串清单中,而不必浏览多个页面才能找到它们。
- 我们不希望任何数据存储在云中或其他人的服务器上。- 我们希望能够将iOS 18中的gen-emoji表情符号用于某些图标。当预定义的图标不适合时,这是一个很好的选择。- 我们需要每天、每周或每月设定目标。
- 应该可以没有目标,只计算发生的次数。我的妻子有时会头痛,所以她也想记录所有这些头痛。- 我们希望能够添加注释。
我希望能够写下我在每次训练中做了哪些练习,以及练习吉他时我的歌曲速度。- 我们想设置有关习惯的提醒,可以是每天,也可以是在一周或一个月的特定日子。这个列表中没有什么是特别开创性的,所以我查看了各种选项,看看有些东西是否可以有效,以避免我不得不开发一些东西。
我们首先尝试了Streaks应用程序。这是iOS上完全免费的应用程序,甚至还集成了Apple Health。这满足了我的大部分需求,但无法满足此列表中的一些要求:- 这些应用程序都在页面中,而不是一长串列表中。
当您有20件事想要跟踪时,浏览所有页面可能会变得非常乏味。这个应用程序赢得了设计奖项,所以这可能更像是我的问题。- 我妻子找不到适合她想做的一些事情的图标。因此希望能够创建自己的。- 没有办法计算发生的情况。
您必须设定每天想做某件事的次数。如果您正在追踪头痛,这并不是您想要的,因为理想情况下您不想要任何头痛。- 她还意识到她需要一种关闭条纹的方法。条纹并不总是对您跟踪的所有内容有帮助。我们还尝试了几个应用程序。
有一个流行的叫做DeliverKit,还有一个叫做Grit。
我非常喜欢DeliverKit的GitHub风格贡献图表,但我的妻子不是开发人员,并不对此感到非常困扰。Grit可能是我们正在寻找的东西的壁橱,但仍然缺乏一些功能。老实说,如果不是因为价格,我会非常满意Inbox Kit或Grit来满足我的需求。
现在我不介意支付申请费用。我的手机上有很多我购买的应用程序以及我付费购买的桌面软件。我完全支持支持独立开发者,但我也记得有一段时间,iPhone应用程序的价格只是一杯咖啡的价格。另一方面,沙砾的价格为9英镑。
99/月或29英镑。99/年。可以选择购买终身许可证,但费用高达44英镑。99.这几乎是一款新主机游戏的成本。DeliverKit的情况也是如此,但售价1英镑的情况没有那么严重。99/月或11英镑。
99/年,29英镑。99终身选择。也许我只是一个小气的混蛋,但我不想在我的预算中增加更多订阅,我的预算已经足够了。所以我开始在人工智能的帮助下自己建造一个。我去年三月开始了这个项目。Cursor正在免费赠送积分,这是了解人工智能能力的绝佳机会。
到目前为止,除了简单的聊天问题之外,我基本上避免使用人工智能。鉴于在我需要所有能得到的帮助之前,我从未在Swift中开发过任何东西。我们决定了这个名字“尤利西斯”特德和我的妻子甚至设计了一个可爱的熊标志。
人工智能开发流程#如果您之前没有开发过iOS应用程序,如果您想在模拟器上测试应用程序并对其进行调试,则几乎只能使用XCode。因此,在cursor和Xcode之间有很多来回尝试并设置一切。这是在Claude Code发布之前,所以这并不是完全的代理不干涉工程。
相反,我将开发分解为许多小任务,并用人工智能手动完成它们,并在进行时测试每一个更改。我从一个简单的hello world应用程序开始。然后添加到习惯列表中,添加习惯、编辑习惯等的能力。公平地说,在周末大约6个小时后,我有了一个似乎可以工作的应用程序。
它还没有完成我想要的一切,但你可以用自定义图标创建一个习惯,你可以点击它来完成它,而且它支持各种目标选项,甚至可以同步iCloud。尽管我有事要做,只花了6个小时,但我不能说这是愉快的6个小时。
通常当我完成一个项目时,我会为自己所取得的成就感到自豪。即使我有问题,事情花的时间比需要的时间更长,我也会在学到新东西后完成它。这些失败教会了我一些东西,我在开发过程中遇到的任何挫折通常到最后都是值得的,至少我学会了不再犯同样的错误。
然而,6个小时后,我不能说我学到了很多关于Swift开发的知识。
每当出现错误时,我就会发现自己复制并粘贴错误消息,并要求人工智能尝试修复问题。我对人工智能不足以解决这个问题感到恼火,但也对自己感到恼火,因为我也做不到。问题#尽管我在用许多其他语言编程之前没有用Swift编程,但查看代码时我可以看出这不是好代码。
每个视图都有近1000行长。XCode上的编译器无法处理长度,并且总是告诉我分解内容。外观相同的按钮等事物的样式在不同的视图中具有完全不同的代码。整个事情有点混乱。因此,我没有依赖人工智能来尝试解决这个混乱问题,而是决定自己手动地重新构建它,以老式的方式。
我将所有内容移至长度不超过100行的单独视图中,并修复了所有不一致的代码。然后我进一步测试了该应用程序,以确保一切正常工作,并发现了更多问题。我发现iCloud同步实际上不起作用。它可能已同步到iCloud,但如果您初始化该应用程序并重新安装它,它只会丢失您的所有数据。
我还发现,一旦我在习惯中添加了很多完整内容,事情就开始变得非常缓慢。我意识到我在详细信息页面上的统计数据每次进入该页面时都会循环通过所有习惯来计算它们。
我在习惯上创建了一些属性来存储统计数据,并将计算移至习惯完成时进行,然后我意识到数据模型过于复杂,并且有一些非常奇怪的命名。这促使我制定了数据迁移计划,否则每当我更改模式时,习惯就会被打破。一切修复后,我添加了一些缺失的功能,例如提醒和不同的目标选项。
然后iOS 26就出来了。我不确定苹果是否经常使用人工智能进行开发,但iOS 26存在很多错误。我真的不喜欢玻璃效果,所以我打开了降低透明度可访问性选项,这在我的应用程序中导致了各种问题。我到处使用黑暗模式,但打开一个习惯导致标题栏