从零到一:使用 AI 开发 iOS App 编程之旅《震感》

发布时间:2025-06-24 17:30:53  作者:北方职教升学中心  阅读量:848


在网上看到一篇关于人工智能开发的编程经验,与大家分享。

作者是怎么没有的? iOS 在开发经验条件下,借助 AI(如 Claude 3 模型)《震感》成功开发发布iOS 应用。

正文开始。

2022 年 11 月,ChatGPT 它的诞生并迅速引起了全球的关注。在过去的两年里,󿀌生成式 AI 快速发展,无论是在模型层还是应用层󿀌都取得了显著的进展。

大多数人都应该经历过 ChatGPT,或其他类似的生成式 AI 产品。你可能不仅仅是在聊天,甚至在工作中使用 AI 提高效率的辅助工具。毫无疑问,󿀌AI 将带来巨大的变化,未来与 AI 合作很可能成为每个人的必备技能。

这两年,我一直在关注 AI 技术发展。每当新模型发布时󿀌我有过惊喜和失望的情绪波动。这种情绪周期的变化,经常让我感到兴奋#xff0c;或者认为期望和现实之间存在差距。

alt

AI 发展观察者的情绪周期(由 Claude 绘制)

直到几个月前�Claude 3 Sonnet #xff08模型发布;现在已经是 3.5 Sonnet),我意识到它的巨大潜力。所以,决定挑战自己,尝试看看 AI 它能帮助我实现我的梦想吗——开发一个 iOS app。

alt

Claude 比较模型能力。

iOS开发:我决定入坑。

多年来,尽管我一直在关注 iOS 应用,但从未接触过 iOS 开发。我对 iOS 对开发的理解几乎为零。知道有 Swift、Objective-C,也听说过 Xcode,但几乎没有机会实际操作。

iOS 开发
iOS 开发。

Xcode 和 Swift。

几年前,由于工作和学习的原因,我学过一些 Python,虽然我现在不是专业人士 Python 工程师,但是我可以写一些简单的脚本,解决工作中的小问题,了解数据库、网络请求等基本概念。所以,虽然完全没有 iOS 开发经验󿀌我还是决定试着做一个简单的地震信息 app(暂称“震感”)。

也许你能猜到,选择这个主题的原因很随意。作为 2008 年度地震的见证人,我特别关注地震信息。现有地震信息 app,或者界面丑󿀌或者体积太大󿀌我一直不满意。

编码前:明确目标�规划框架。

明确地震信息 app 后,我还需要解决一堆基本问题:

  1. 我应该用什么编程语言来开发?
  2. 什么工具需要下载#xff1f;如何开始?
  3. App 如何设计界面?什么页面1需要什么页面?f;
  4. 我能投入多少时间?
  5. 如何将 app 发布到 App Store?

通过查阅资料和查询 AI,我得出以下结论:

  1. 我决定使用 Apple 推荐的 SwiftUI 来开发原生 iOS app,没有第三方框架󿀌尽量减少依赖性󿀌方便 AI 官方文件可以使用。
  2. 我需要下载 Xcode,这是开发 iOS 必要的应用工具。
  3. 我参考了 Apple 的。 人机界面指南。,尽量使用原始控件󿀌节省复杂的界面设计。
  4. 我可以接受累计投资 1 这个项目将在周末完成。
  5. 我需要每年支付 688 元注册 Apple Developer 帐号,用于提交 app 到 App Store。

梳理思路󿀌从零开始。

注册了 Apple Developer 帐号,下载了 Xcode,我面临的第一个问题是:“如何开始?”。

我对 iOS 对项目结构、代码组织等一无所知。于是,我让 Claude 帮我生成一个简单的 SwiftUI 项目(比如 Hello World),并指导我一步一步地操作。虽然我对 SwiftUI 代码完全无法理解#xff0c;但它已经成功运行了。

接下来,我让 Claude 讲解了 iOS app 基本结构,了解应用程序的图标、页面组织和基本配置。经过多次沟通�我初步掌握了它 iOS app 的框架。

App 基础结构
App 基础结构。

最简单的一个 iOS App 结构。

细节:逐步与人工智能一起实现。

与 AI 合作开发 iOS app 并不简单。假如你直接正确 AI 说说:“帮我做一个地震信息 app",它只会给你很多代码,并说“搞定”。但是如果你一步一步细化问题󿀌AI 可以帮你逐步解决。

例如,震感的主界面需要地图和地震事件列表。

alt

震感 App 主界面。

我给 Claude 提示:“请在主页上显示地图,使用原始组件和 SwiftUI 语法。拿到代码后󿀌我把它粘贴到 Xcode 中,操作检查效果。如果地图显示不完整,#xff0c;我就继续与 AI 沟通:“我希望地图能占据整个屏幕󿀌请修改代码。”。

如果遇到 Xcode 报告错误,我会反馈错误的信息 AI,要求它帮助我分析和修复问题。

总之,开发一个 app,需要把问题分解成小任务󿀌与 AI 多轮对话可以实现预期功能。

后端挑战。

随着发展的深入,我意识到震感不是纯粹的本地应用,实时地震数据,这需要后端服务。

此时,我开始向 AI 咨询如何构建后端服务。最后,我选择了 Cloudflare 无服务器产品,这样可以避免构建复杂的云服务器,后端功能也可以以较低的成本实现。

alt

震感 App 后架构示意图。

借助 AI 加速开发。

和 AI 在一起开发时󿀌代码报错或功能无法实现的情况经常发生。此时,我会通过搜索引擎找到相关信息󿀌输入新获得的信息 AI 更新其知识库。

另外,我还会与 AI 转换角色󿀌自己扮演测试工程师󿀌通过反馈日志加速问题的解决。

项目迭代#xff11a;AI成为产品经理。

在完成原始功能࿰之后c;我会把整个项目交给我 AI 协助迭代。在 Claude 的 Project 功能下,我上传了整个代码库,并让 AI 深入了解项目结构�这使得后续迭代更加高效。

alt

震感 app 的 Claude Project 配置截图。

࿰在不断优化迭代中c;我通过 Git #xff0管理代码c;并将其上传到 Claude Project,让 AI 帮助我更准确地进行项目迭代。

震感 app 经过约 50 小时努力,第一版࿰已经完成c;并顺利上架 App Store。随后的迭代也在不断推进。

alt

macOS 版本震感 app。

总结:人工智能编程的感觉。

AI 在这个过程中,帮助无处不在。它不仅仅是我的编程助手,也逐渐成为我的设计师、产品经理,甚至是我的测试工程师。

与 AI 合作开发应用󿀌不仅让我更有效地完成任务,也让我在开发过程中深刻感受到 AI 的潜力。未来,AI 很有可能成为每个人编程的好伙伴,帮助我们实现从创造力到落地的整个过程。

我也期待 AI 未来会带来更多的创新󿼌帮助更多的人实现他们的编程梦想。

本文由 mdnice 多平台发布。