Apple Intelligence 赋能 Xcode 16,实测效果如何?
00 分钟
2024-7-12
2024-7-11
category
AI summary
tags
password
summary
date
icon
status
字数统计
type
slug
orgsrc
URL
就在上个月,苹果推出了 Apple Intelligence 加持之下的 Xcode 16 Beta 版,为开发者带来了两大 AI 辅助编程工具:
  • Swift Assist
  • Predictive Code Completion Model
其中 Swift Assist 是运行在云端的 Swift 编程语言专家大模型,除了 Swift 语法之外,也精通 Apple 各平台的所有 SDK,开发者可以通过自然语言对话形式生成完整 Swift 代码。不过目前该功能暂时无法使用,要到今年晚些时候才会正式推出。
而后者(Predictive Code Completion Model,后文简称 PCCM)则是基于 Apple 芯片和 macOS 15.0(Sequoia)的本地大语言模型,可以辅助开发者实现代码自动补全等基础 AI 功能:
notion image
由于 macOS 限制 PCCM 在国行 Mac 电脑的使用,需要通过额外设置解除系统限制,具体操作方法请参考文末链接,但是目前可能存在未知风险,非专业人士或重要办公设备请勿轻易尝试
 
借助 AI 辅助工具,我们在 visionOS 2.0 中开发了通过自定义手势(打个响指 🫰)实现沉浸场景切换的交互效果:
在这一案例的开发过程中,我们同时使用并对比了 Apple Intelligence 加持下的 PCCM 和其它AI 辅助编程工具(通过 Copilot for Xcode 插件,使用 Codeium 在线 API 实现代码智能补全,使用 Ollama + DeepSeekCoder 实现本地化自然语言代码生成功能)。
关于如何使用 Copilot for Xcode 插件实现 Xcode 辅助 AI 编程功能,可以参考下面这篇文章:
 
AI 辅助编码工具的功能,从简单到高级,可以大致分为以下几个等级:
  • L0-代码建议 & 智能补全
  • L1-自动扩写
  • L2-上下文&意图理解

L0 代码建议 & 智能补全

最简单的代码建议 & 补全功能,基于用户当前正在输入的语句,提前预测并生成智能补全代码,这一功能其实更多是减少开发者敲入重复冗长语句的负担。本地化的 PCCM 在输入停顿后需要 1~3 秒的时间,会弹出 ... 作为提示,Tab 键接受并输入 AI 推荐的补全。
对于最简单的补全功能,1~3 秒的延迟对于大部分开发者来说都太慢了;除此之外,以下图为例,Codeium 补全建议甚至已经考虑了在其它文件中定义过的变量名 controlPan ,无论是从速度还是上下文理解上,都远超过 PCCM。
notion image

L1 自动扩写

自动扩写功能是基于开发者当前要完成的功能模块,通过输入简单的注释或函数名称,推导出完整的过程代码。
下面这个例子演示了为 Color 增加一个生成随机颜色的扩展函数,同样是仅通过注释词作为引导,前后两次对比差距非常明显:

L2 基于上下文意图理解

AI 辅助编程更高级别的功能,需要能够正确理解当前项目的所有代码、功能和上下文信息,基于开发者给出的需求描述,准确拆解实现步骤,并结合已有代码(变量、函数等),重构并实现完整功能的开发。能做到这一步,其实已经足够替代很大一部分开发者的工作了。
当然目前苹果的 PCCM 还不足以实现这一点,只能寄希望于后续推出的 Swift Assist。不过我们已经可以通过 CopilotForXcode 插件结合 OpenAI 等大语言模型实现,更进一步,通过 Ollama 项目可以实现部分简化大语言模型的本地化运行,效果如下:
notion image

总结

总结来说,目前苹果预测代码补全模型功能不尽如人意,和其它 AI 辅助工具对比更是毫无优势;至于今年晚些时候将会推出的 Swift Assist 是否能够做到更好(仍然可能对国行设备锁区),虽然相比于其它 LLM 的最大优势是拥有所有 SDK 最新版本的准确知识基础,但从 Apple 开发者官方文档惜字如金的混乱情况来看,可能也并不乐观。
除非,Apple 邀请请 Swift 本人作为 Assist 声音原型~
notion image

参考