iOS开发中的AI辅助编程:CursorAI与即将到来的Swift Assist

本文深入探讨AI辅助工具如何改变iOS开发工作流,重点介绍CursorAI的Composer和Chat功能,以及Apple即将推出的Swift Assist。涵盖从基础设置到实际应用技巧,包括多文件操作、UI逆向工程和代码重构,同时分析AI工具的局限性及最佳实践。

iOS工程领域自诞生以来经历了显著变革,从Interface Builder时代演进到AI增强的开发工作流。来自不同背景的程序员报告称,通过AI辅助生产力得到提升,iOS应用的概念化和构建方式正在发生根本性转变。

然而,AI辅助开发的兴起既带来机遇也带来挑战,每位iOS开发者都需要理解这些变化。

关键要点

AI辅助开发工具正在重塑iOS开发工作流,研究表明文档编写速度提升高达50%,代码生成速度加快35-45%,但在处理复杂架构任务时仍受限于"70%问题"。

CursorAI通过其Composer和Chat功能脱颖而出,支持同时进行多文件操作和UI逆向工程,同时保持项目范围的上下文和MVVM等架构模式。

虽然AI工具擅长自动化常规任务和生成样板代码,但成功的iOS开发仍需要人类专业知识来处理调试、性能优化和App Store合规性等关键方面。

iOS开发的演进

iOS工程经历了漫长的发展历程,就像软件工程的整体演进一样。早期iOS工程师使用Interface Builder和XIB文件,这些类似于用于创建静态视图的XML文件。

2014年当Apple推出Swift编程语言时,情况发生了变化。最初,UIKit等UI框架更新以支持Swift,但它们仍然植根于Objective-C。然后在2019年6月,SwiftUI问世,这改变了游戏规则。

SwiftUI是一个声明式框架,允许在所有Apple平台上构建用户界面。这是思考iOS开发的全新方式,从旧方法转向更现代、基于组件的方法。

这种演进不仅关乎代码,还改变了开发者对iOS应用的思考方式。他们不再需要手动布局所有内容,而是可以创建根据设备和用户偏好变化的自适应界面。通过组件化架构,他们可以重用代码并使维护更容易。

此外,类型推断和自动引用计数使事情更简单高效。它还为iOS开发带来了函数式响应编程的简易实现。每一步都使iOS开发更接近我们今天所知的现代高效流程。

开发中的AI革命

2024年,Apple推出了Swift Assist,这是他们的首个AI代码生成工具。这个70B+参数的模型专门针对Swift代码、SDK和文档进行训练,标志着Apple正式进入AI辅助开发领域。Swift Assist目前仍在开发中,尚未向公众发布。

麦肯锡的研究表明,AI擅长某些任务但不擅长所有任务。它可以将代码文档编写速度提高高达50%,使代码生成速度加快35-45%。但在非常复杂的任务上表现不佳。工程领导者Addy Osmani称此为"70%问题",因为AI工具在相对简单的任务上表现出色,但在复杂任务上需要人类干预。

AI编码助手在自动化创建样板代码和实施标准功能方面非常有益。它们还提供基本优化和安全考虑方面的帮助。

然而,在设计系统架构、优化性能或理解不同系统组件之间的相互作用等复杂任务方面,它们的能力有限。此外,它们无法处理异常情况或辨别系统的整体集成。

现代AI工具格局

当前的AI开发工具生态系统提供了多种增强开发过程的方法。Apple的Swift Assist代表了平台所有者的愿景,深度集成到开发环境中,并专门针对Swift和Apple框架进行优化。

GitHub Copilot提供广泛的语言支持,并与版本控制工作流深度集成。ChatGPT和Claude提供通用LLM,允许用户将代码复制粘贴到其门户中,并通过提示进一步改进代码和进行修改。

在这些工具中,CursorAI已成为iOS工程师特别有吸引力的选择。它结合了Visual Studio Code的熟悉性和专门适合iOS工程师的功能。CursorAI还轻松解决了使用ChatGPT和Claude编码的最大障碍之一——手动将代码复制粘贴到Web浏览器中。

CursorAI理解项目上下文、适应现有代码库和支持多个AI模型的能力,使其非常适合专业的iOS开发工作流。

使用CursorAI进行iOS开发介绍

接下来,我们将深入探讨CursorAI如何增强iOS开发。有效将CursorAI集成到iOS开发工作流中需要仔细考虑工具配置和开发实践。

以下部分演示如何配置CursorAI以获得最佳性能,并通过示例笔记应用程序探索实际实现。

为了展示CursorAI的能力,我们将创建一个名为NoteTaker的简单笔记应用程序。在使用默认SwiftUI模板在Xcode中创建新项目后,我们将在CursorAI中打开它开始增强我们的开发工作流。

这个示例将展示AI辅助如何简化常见的iOS开发任务,同时保持代码质量和架构最佳实践。

基本Xcode项目设置

基本CursorAI项目设置

理解AI角色和上下文

CursorAI最强大的能力之一是理解和适应不同开发角色和上下文的能力。配置CursorAI以理解项目的架构结构和模式至关重要。

这需要建立与开发方法相对应的AI角色,例如指定MVVM架构偏好或SwiftUI导向的开发模式。

有两种定义CursorAI规则的方法:可以为所有项目建立通用规则,或为特定项目建立特定规则。在我们的实例中,让我们为所有项目配置规则。

要为所有项目设置规则,请转到Cursor > Settings > Cursor Settings。然后在General > Rules for AI下,您将能够用特定规则集指导IDE。对于本教程,我们将使用Ray Fernando博客文章分享的预设规则。

设置CursorAI规则

在配置CursorAI进行iOS开发时,我们应该建立关于开发实践的明确指南。这有助于确保AI建议符合项目的标准和架构决策。例如,我们可以指定对SwiftUI而非UIKit的偏好、MVVM架构以及团队遵循的任何特定编码约定。

使用CursorAI的实用iOS开发技巧

现在我们已经完成基本设置,让我们探索一些CursorAI可以增强iOS开发工作流的实用方法。让我们探索一些功能,如Composer和Chat,以及CursorAI如何以独特方式提高iOS开发者的生产力。

使用Composer处理多文件

Composer功能通过提供全面的项目范围代码生成和重构能力,使CursorAI与传统基于AI的IDE区分开来。与需要在文件之间手动复制粘贴的传统工具不同,Composer理解整个代码库上下文,实现无缝的多文件操作。

这种上下文感知对于iOS开发特别有价值,因为功能通常跨越多个SwiftUI视图、视图模型和数据模型。使用Composer功能,可以轻松操作多个文件,并确保代码库中的所有文件都可以从集中位置进行重构。

Composer功能特别有益的一种方式是当我们想要为应用程序中的特定功能创建多个新文件时。例如,考虑我们想要为新SwiftUI视图创建相应ViewModel的场景。让我们探索使用Composer功能实现此功能的过程。

要使用Composer功能:

  1. 按CMD+I访问Composer界面
  2. 提供描述所需实现的详细提示
  3. 明确架构模式(MVVM、SwiftUI实践)
  4. 包括任何相关约束或要求
  5. 按Enter生成实现

例如,在创建新功能时,您的提示可能会说:“使用MVVM架构和SwiftUI创建新的笔记条目视图,包括输入验证和本地存储功能。”

CursorAI的Composer

提交提示后,CursorAI将:

  1. 生成建议的代码更改并提供详细解释
  2. 提供选择性实现选项:
    • 接受受影响文件的所有更改
    • 选择要实施的特定更改
    • 请求修改以更好地匹配您的要求
  3. 在应用更改前预览对代码库的影响

这种迭代方法确保AI生成的代码符合项目标准,同时让您完全控制实现细节。通过一个清晰简洁的提示,我们能够为笔记应用程序生成基本功能,让我们可以输入和显示笔记。

CursorAI生成的功能性笔记功能

通过这个示例,我们可以看到如何与整个项目合作创建名为MainView和MainViewModel的新文件,并使用Composer同时处理多个文件。

使用CursorAI的Chat和Edit功能

CursorAI提供全面的代码分析能力,并支持针对性重构特定代码部分。CursorAI的聊天功能让您与LLM对话,理解某些文件,附加图像进行逆向工程和调试。CursorAI的编辑功能在单个文件内与代码补全配合良好。

重构特定代码行

以下示例演示如何使用CursorAI的编辑功能重构MainView文件中的特定代码部分。假设我们希望保存的笔记显示在基于SwiftUI的ScrollView中的渐变方块中。

选择MainView结构中的所有代码行,然后按CMD+K,在对话框中对如何重构这些行给出清晰简洁的说明。我们希望在一个方形列表中以渐变背景显示所有笔记,还要确保TextEditor和主标题文本保持在屏幕顶部。

您还可以附加特定主题的文档或教程,在我们的案例中,附带了关于SwiftUI中CollectionViews的教程。要充分利用此功能,请非常具体、简洁并定义限制。

CursorAI中的代码补全

输入提示并接受代码建议后,CursorAI将实施这些更改。如果我们检查更新后UI的状态,可以看到我们要求的确切更改已实施,同时确保代码质量得到维护。

CursorAI编辑功能生成的内容

使用CursorAI的Chat进行用户界面逆向工程

与使用ChatGPT和Claude编码类似,CursorAI允许您通过基于聊天的界面提示来深度分析代码、调试和重构代码。

为了展示此功能,让我们使用CursorAI的最佳功能之一:从图像附件逆向工程UI。作为示例,让我们尝试重构MainView中的按钮。让我们用自定义设计增强MainView的默认按钮实现:

  1. 在MainView.swift中,找到并选择按钮实现代码
  2. 按CMD+L打开CursorAI的聊天界面
  3. 附加所需按钮设计的参考图像
  4. 提供特定的样式要求(动画、过渡等)

这个工作流展示了CursorAI如何将基本的SwiftUI组件转换为精美的生产就绪UI元素,同时保持SwiftUI最佳实践和性能考虑。附加图像后,让我们用清晰的指令提示CursorAI,说明我们的按钮应该如何外观和交互时动画,同时指示如何从模拟按钮设计中获得灵感。

CursorAI建议更改以逆向工程模拟

CursorAI建议更改后,审查并接受和应用这些更改。如果再次运行应用程序,我们可以清楚地看到只有我们的按钮发生了变化,而MainView文件中代码的其他方面保持不变。

我们完成的笔记应用程序

使用CursorAI等工具的潜在陷阱和实际经验

将基于AI的IDE和AI工具集成到iOS开发工作流中呈现出一个令人兴奋的前沿领域。虽然诸如CursorAI之类的工具擅长通过便捷的用户界面建议解决方案,但它们不能取代有条理的调试实践和架构决策。

关键在于将AI用作协作工具,而不是依赖它进行自动修复。例如,在调试涉及状态管理或内存泄漏的复杂问题时,AI可以协助识别模式并建议潜在解决方案,但开发人员仍必须理解根本问题并在特定上下文中验证建议的修复。

虽然开发人员可以利用CursorAI等工具提供的功能快速构建基本应用程序,但真正可扩展、能够承受边缘情况并被Apple App Store接受的应用程序需要开发人员的深度思考和全面技术理解。

结论

将CursorAI等AI工具集成到iOS开发工作流中彻底改变了应用程序构建方式。然而,成功在于理解如何有效利用这些工具,同时保持最佳实践。

关键是找到正确的平衡:使用AI加速开发,同时确保良好的软件设计原则不受损害。随着AI工具的发展,这种平衡对iOS开发者变得至关重要。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计