不久前,微软对 Github Copilot 进行了相当程度的功能增强,除了添加了对 MCP 的支持外,在 AI 交互模式上也提供了与 Cursor 对齐的 Agent 模式,至此,Github Copilot 大大缩小了与其他 AI 代码工具领先者之间的差距。考虑到其更低的定价策略( $10/月 ),明显微软已做好了全力进入商业 AI 辅助市场/服务的准备。
对于开发者来说,良性的竞争意味着会带来更好的产品和更有性价比的服务。但由于目前不少 AI 编程工具与 VSCode 都使用了相同或接近的底层实现,并且选用了类似的大模型组合,这意味着过段时间,这些工具之间的差异会越来越小,提供更有性价比、更具独特价值的功能就变成了这些工具获取用户的主要手段。
或许是为了保证 VSCode 的独特性,在 VSCode 生态中一些非常重要的,由微软开发的插件(Remote SSH、Pylance、Python Debugger、C/C++ 等)在最新的更新版中已经无法在 VSCode 之外的编辑器中使用了。这些插件虽然闭源但一直允许第三方编辑器使用,现在却突然弹出“只能在微软产品中使用”的提示。尽管这并没有违法微软在开发这些插件时的授权,但这种突然的屏蔽行为还是引起了很多其他编辑器使用者的不便。考虑到在整个 VSCode 生态中,微软提供了大量的优秀插件,如果未来其中相当一部分只能运行在 VSCode 中,那么会明显提高 VSCode 在这些编辑器工具中的竞争力,并影响不少开发者的选择。
面对这一挑战,Cursor 团队已迅速推出应急修复,并计划开发长期解决方案,逐步转向支持社区开源替代品。这一事件实际上反映了微软已将 Cursor 视为真正的竞争对手——一个凭借 AI 能力,在某些场景下体验超越 VSCode 的挑战者。
与此同时,谷歌在上周推出的 Firebase Studio 又将 AI 编辑器推向了新的领域。这款融合了 Project IDX、Genkit 和 Gemini 的平台不仅支持通过自然语言快速生成原型,还能通过 AI 聊天方式迭代应用,并提供一键部署到 Firebase App Hosting 的能力。通过与谷歌云端服务的深入捆绑,不仅加速了开发、调试的过程,也大幅降低了部署的难度。可以预见,同样具备云端服务优势的微软也很快会在 VSCode 上提供类似的体验。就像当前的浏览器、搜索引擎一样,AI 开发工具将逐步从开发者的桌面工具过渡成各个大公司绑定开发者的入口。
单纯从商业角度来说这并没有什么问题,但这意味着仍在开发 AI 编辑器的小公司、小团队的机会窗口将更加的小了。他们不得不在两条路中选择:要么在 AI 编程体验上做出真正的差异化,要么依靠社区力量维持生态,成为一个真正独立的开发工具。一个逐渐缺少了活力的市场将扼杀创意,尽管从历史上来看几乎每个领域都会走向类似的结局,只是没想到在 AI 时代,大公司的行动会如此的迅速,如此的果决。
在这场开发工具的变革浪潮中,苹果的 Xcode 似乎还未展现出清晰的 AI 集成战略。作为苹果生态的核心开发工具,Xcode 长期以来依靠其与平台的无缝集成成为苹果开发者的不二之选。然而,当 AI 正以前所未有的速度重塑开发体验时,静观其变已不再是明智之举。如果不能在未来的一两年中有重要突破,不仅开发者体验会滞后,创新生态也可能流失。苹果会在 WWDC 2025 上交出怎样的答案?这将决定其平台在下一代开发范式中的地位。
本期赞助
需要在 iPhone 上调试 HTTPS?
试试 Proxyman!这是一款顶级的 macOS 应用,只需点击几下,即可轻松捕获和调试 HTTP(s) 流量。支持 iOS设备和模拟器。
原创
用 Swift 构建 WASM 应用
随着 Swift 6.1 版本的正式发布,SwiftWasm 也迎来了重大升级。这一里程碑式的更新标志着 SwiftWasm 首次实现了完全基于官方 Swift 开源工具链的构建——告别了自定义补丁的时代,不仅显著简化了开发者的安装流程,大幅节省了系统存储空间,更为重要的是,这种纯正构建方式极大降低了平台的维护成本,为 Swift 生态系统注入了新的活力。在本文中,我们将探索如何利用 Swift 构建 WebAssembly 应用,带你领略 Swift 跨平台开发的无限可能。
近期推荐
结构化并发的行为准则 (Rules of Structured Concurrency)
Swift 并发中的任务可分为结构化(Structured)与非结构化(Unstructured)两类,核心差异在于是否具备父子任务关系,以及是否能自动管理生命周期、错误传播与取消逻辑。在这篇文章中,Vitaly Batrakov 基于“任务树”模型,总结出结构化并发的三大核心规则(Error、Group Completion、Group Cancellation,简称 EGG 🥚),为 Swift 并发机制提供了清晰、系统的理解路径,推荐给并发初学者与进阶开发者阅读。
swift-markdown 的自定义能力边界 (The Limits of swift-markdown Customization)
swift-markdown 是苹果最初开发的 Markdown 解析与构建库,提供了优雅的访问结构和基于 Visitor 模式的遍历机制。Christian Tietze 在文章中分享了他在构建 Markdown 处理管线过程中遇到的诸多限制:虽然读取和遍历功能完善,但在插入节点、修改结构、扩展元素等方面受限严重。无法新增节点类型、缺乏插入/组合能力、formatter 不可扩展,让这个库成为“看起来灵活、实际封闭”的典型代表。吐槽之余,Christian 也对 AST 工具的设计边界提出了不少值得参考的思考。
如何发布你的 macOS Swift 命令行工具 (Distribute Your Swift CLIs for macOS)
目前,许多 Swift CLI 工具仍依赖 Mint 或 Mise 实现“安装即编译”,虽然简化了维护流程,但对用户而言存在编译慢、易失败等问题。Pedro Piñera 认为,更理想的方式是发布预编译二进制文件,并结合 GitHub Releases + UBI 实现一键安装。再配合 Mise,可提供更完善的版本管理体验。在本文中,Pedro 提供了一套可复用的构建与发布脚本流程,覆盖 fat binary 构建、压缩、签名上传至 GitHub,并适配 CI 与本地环境。
你的项目适合用 SwiftData 吗?(Should You SwiftData?)
SwiftData 自发布以来一直颇具争议,很多开发者仍在观望是否应该投入使用。在本文中,Leo G Dion 结合自己开发 Bushel 的经验,分享了他的思考。他认为,对于倾向于使用 Apple 官方框架、喜欢 ORM 编程范式、重视长期维护成本与新技术支持(如 SwiftUI、Swift 6、宏等)的开发者来说,SwiftData 是值得考虑的方案。此外,文中还列出了一些替代方案,如 GRDB、CoreStore、Boutique 等,供不同需求的开发者参考。
我为什么不再子类化 UITableViewCell / UICollectionViewCell (Why I Never Subclass UITableViewCell or UICollectionViewCell)
在开发购物类 App 的过程中,Srđan Stanić 起初沿用了常规模式:为 UITableView
和 UICollectionView
分别子类化 UITableViewCell
/ UICollectionViewCell
,用以构建商品列表 UI。但随着产品设计不断演进,他逐渐遇到以下问题:相同 UI 需在多个上下文中复用;每次复用都必须重新实现布局逻辑;为适配某种 UI 承载方式,不得不引入不必要的复杂容器。于是他选择反向而行:不再子类化 Cell,而是将布局独立为一个纯 UIView
,根据使用场景再嵌入到不同的 Cell 或容器中。这不仅提升了复用性和可维护性,也能轻松适配 SwiftUI,通过泛型 Cell 容器进一步简化样板代码。
WWDC25 的愿望单 (WWDC25 Wishes)
又到了每年喜闻乐见的 WWDC 愿望清单时节,Majid Jabrayilov 的关注点主要聚焦在开发工具的改进:
- Swift Assist 与 AI 工具链:呼吁 Apple 尽快补上 AI 辅助开发的短板,并建议推出 Xcode 专属的 MCP server,构建 Copilot 式开发体验;
Project.swift
项目配置文件:希望能像Package.swift
一样,用纯 Swift 描述项目配置,提升版本控制友好性,同时让 VS Code 等非 Xcode 工具更具可操作性;- SwiftUI 的 Recycling View 支持:期待 SwiftUI 引入像
UITableView
/UICollectionView
一样的视图重用机制,解决复杂列表场景中的性能瓶颈。
Majid 提出的每一项都非常戳我,尤其是项目配置的现代化 —— 在当前多 IDE 并用的开发环境中,已经显得越来越迫切。
TextRenderer 演示合集 —— Prismic
从 iOS 18 开始,开发者可以通过自定义 TextRenderer
协议的实现,在 SwiftUI 的 Text
渲染前对文本进行变换,从而打造更具视觉冲击力的动态文字效果。Paul Hudson 创建了 Prismic,这是一个收录了多种 TextRenderer
示例效果的开源项目,既包含纯 Swift 实现的样式,也包含基于 Metal Shader 的高级扭曲与颜色特效。Paul 鼓励开发者基于该项目进行扩展,贡献更多创意实现。
想了解如何构建这些效果?推荐阅读:用 TextRenderer 构建绚丽动感的文字效果
活动
AdventureX 2025 解除报名的年龄限制
在 2024 年,AdventureX 曾规定参赛者年龄需在 26 岁以下。而在 2025 年,我们决定面向所有人开放报名。虽然 26 岁以下的青年创作者与学生依然将构成参赛者的主要群体,但我们也将开放至多 100 个不限年龄名额,欢迎那些虽不在年龄范围内、却依然怀抱年轻心态与创作热情的朋友加入。
我们希望借此机会,促成跨代创作者的深度交流,在同一个现场分享经验、碰撞灵感。
-
👉 了解详情:让我们再次为创造失眠
-
➡️ 点击进入 活动报名通道