网易首页 > 网易号 > 正文 申请入驻

当 AI 重塑开发体验,iOS 生态为何显得格格不入?

0
分享至

作者 | Trevor Elkins

译者 | 马可薇

策划 | Tina

作为一名长期从事 iOS 开发的程序员,最让我感到郁闷的莫过于是看着业界发展日新月异,而我们却仿佛是在原地踏步。我试过用 lovable.dev、bolt.new,和 a0.dev 这些平台构建网站和应用,使用体验甚是神奇。反观苹果生态,我们连 Xcode 里能正常运行的 GitHub Copilot 都少有,我认识的所有开发者都把苹果的“智能功能”关闭了。

据 Expo 项目的核心开发者之一 Evan Bacon 透露的数据,目前 App Store 购物类别中排名前百的应用中,有 40 个都是采用非原生开发的。随着 AI 应用构建工具的爆发式增长,未来非原生应用的比例只会持续攀升。

iOS 开发者的“Cursor”级体验究竟在哪?

在我看来,这一切都要追溯到苹果根深蒂固的闭源传统;是一个关于企业的长期决策是如何积重难返的警示案例。那让我们深入讨论,要想在 iOS 生态中打造类似 a0.dev 的开发体验,究竟需要突破哪些技术壁垒?

代码编辑器

在用户提出修改需求时,要能对代码进行更新并验证其可编译性。听起来不难,对吗?

首先你得有一台 Mac 设备。但即便满足了这个前提条件,iOS 代码编译的复杂度依旧是臭名昭著;苹果官方从未支持过 Xcode 之外的编译环境。虽然也有xcodebuild这类的命令行工具,但其对增量编译等基础功能的支持堪称灾难。开发者还会遭遇无数琐碎且耗时的障碍:系统会反复向苹果服务器发送验证请求、检查配置文件更新状态、确认应用是否具备正确授权(使用操作系统功能的权限),以及强行增加但没人乐意用的应用锁定功能。

在我的一个本地的测试项目中,虽然我能让这条命令运行,但还是会显示下面这些编译错误:

➜ Snake git:(main) ✗ xcodebuild -scheme Snake -configuration Debug -json -destination 'platform=iOS Simulator,id=C286A4E0-BC6C-49EA-A0C7-BBAB40CB0E0B' -quiet build
/Users/telkins/dev/ios/Snake/SnakeTabView.swift:8:4: error: unknown attribute 'States'
@States private var path: [Screen] = []
^
/Users/telkins/dev/ios/Snake/SnakeTabView.swift:8:4: error: unknown attribute 'States'
@States private var path: [Screen] = []
^
/Users/telkins/dev/ios/Snake/SnakeTabView.swift:15:29: error: cannot find '$path' in scope
NavigationStack(path: $path) {
^~~~~
** BUILD FAILED **

这种方案能行得通,大语言模型应该也能通过解析编译错误来自动修复问题,总算是有所突破了!

不过要是 AI 的解决方案需要创建新文件,这点应该难不倒 AI 吧?

现实很骨感。由于 Xcode 特有的.xcodeproj文件格式需要开发者手动维护文件引用关系,我们得想办法在编辑文件的同时,祈祷文件的引用不会出错。虽然开发者社区普遍使用 Ruby 工具库 xcodeproj 来操作项目文件,但苹果从未提供过官方支持工具。

到 2025 年,业内普遍推荐将代码模块化至 Swift Packages,这种方式确实有效,但每个 Package 仍需手动集成到主项目文件中。我们正处在一个尴尬的过渡期:既不能完全摆脱传统项目文件的束缚,又未能实现真正意义上的全 Swift Packages 应用构建。

幸好我们还不算彻底悲剧,目前有些值得关注的开发项目正在推进:

  • Swift Build 近期宣布开源,预计将在构建系统领域带来显著改善

  • Xcode 16 中引入的可编译文件夹功能,为非包化代码管理提供了突破性解决方案,开发者只需关联整个文件夹而非逐个文件进行关联

  • 社区开发的 Sweetpad VS Code 扩展,通过智能化工程文件管理,大幅简化了传统开发流程

然而这些补救措施终究还是在亡羊补牢。iOS 开发生态的整体闭源属性依然根深蒂固,短期内难以被撼动。

实时预览

假设我们已经通过 AI 搞定了代码修改并且能通过编译,现在就该实时预览修改的效果了。以 Lovable.dev 等平台为例,它们的实现方式是在虚拟机运行本地开发服务器,用户只需在浏览器访问特定页面即可。对于采用 React Native 的 a0.dev 来说,原理同样简单:浏览器中呈现的不过是react-native-web的运行实例,比如这样:

x="21.25"
y="19.25"
width="389.5"
height="843.5"
clip-path="url(#roundedCorners)"
class="overflow-hidden"
>

src="https://a0.dev/v2/52/index.html?initialUrl=exp%3A%2F%2Fu.expo.dev%2F933fd9c0-1666-11e7-afca-d980795c5824%3Fruntime-version%3Dexposdk%253A52.0.0%26channel-name%3Dproduction%26snack%3Dcc18e8a0-8c69-4bdd-8df0-7d15181cac48%26snack-channel%3D5PYBIUJa1n&origin=https%3A%2F%2Fa0.dev&verbose=false"
class="w-full h-full border-0"
allowfullscreen=""
allow="cross-origin-isolated; accelerometer; ambient-light-sensor; autoplay; battery; camera; fullscreen; gamepad; geolocation; gyroscope; idle-detection; magnetometer; microphone; midi; payment; picture-in-picture; screen-wake-lock; usb"
>
Object>

通过浏览器开发者工具可以看到,这个加载的正是react-native-web生成的 HTML 页面。由于 React Native 本质上是 React 框架的延伸,开发者只需切换底层平台目标,就能在浏览器中获得近乎完美的预览效果。

但 iOS 开发完全是另一套游戏规则:你必须要让应用运行在 iOS 运行时环境中。这意味着开发者需要管理模拟器启动(内存占用极高)、处理设备更新和模拟器运行时版本兼容问题、想办法通过视频流传输机制将模拟器画面投射到浏览器的同时,建立双向交互通道同步用户输入事件。一点都不简单。

看起来 iOS 运行时才是技术瓶颈。难道不能通过 WASM 等技术让 SwiftUI 支持网页目标吗?很遗憾,SwiftUI 是闭源的!我们完全受制于苹果的技术路线图。虽然开源社区有 OpenSwiftUI 这样的优秀项目,但其实现原理却是通过对框架逆向工程。为什么苹果会想把 SwiftUI 做成闭源产品超出了我的理解能力。对比之下,安卓的 Jetpack Compose 不仅完全开源,更是通过 Compose Multiplatform 实现了跨平台开发。即便是 Skip 这类的创新项目,目前也仅支持安卓而非网页平台。

规模化构建

假设我们也已经攻克了模拟器的难题,现在要将解决方案扩展到供数千开发者使用。服务器虚拟化本来就是成熟技术,不是吗?

但在 iOS 生态中这仍是天方夜谭。要运行模拟器,我们就得有 macOS 设备,但这也是要命的地方:规模化部署 macOS 服务器非常困难。

首先,macOS 虚拟机按规定只能在正版 Apple 硬件上运行。其次,根据苹果的授权条款,物理 Mac 实例最低的租用周期长达 24 小时(参见 AWS 物理 Mac 实例的复杂配置流程)。

其次,即便成功启动 Mac 实例,苹果的虚拟化框架也会将并发虚拟机的数量严格限制在两台以内。选择在虚拟机运行构建服务本是出于安全考量,由于 iOS 模拟器可直接访问宿主文件系统,恶意应用可能窃取宿主系统或其他用户的数据。这种安全与效率的悖论,直接导致规模化部署需要堆砌数以千计的物理 Mac 设备。

最后,macOS 本质上就不是为无服务器环境设计的操作系统。Linux 系统上那些"开箱即用"的服务器体验,macOS 会给你带来各种意想不到的"特色功能"。

安卓生态怎么说?

鉴于谷歌的安卓生态是开源的,那它是否就比苹果生态更具优势呢?

理论上确实如此,多数项目通过简单的./gradlew assembleDebug命令就能成功编译,虽然编译时间往往过长而难以形成高效的工作流。模拟器问题与 iOS 要面对的基本相似,虽然安卓模拟器的规模化运行可行,但同样存在其特有的技术难题。

要想实现真正实用的方案,安卓应用可能需要通过 Compose Multiplatform 转向网页平台。目前已有项目实现在浏览器渲染 Compose 视图,技术可行性已经得到了验证,关键在于要如何将开发体验至 Expo 的水准。

总 结

感谢你读到这里,那我们从中能学到什么呢?在我看来,苹果对软件生态的封闭策略终于开始反噬自身,使其在 AI 竞赛中渐显颓势。当下蓬勃发展的 UI 框架无不建立在开源技术之上,越来越多的开发团队选择了 React Native 而非 Swift 尤其是在 AI 服务让应用搭建速度发生质变的今天。我期待能出现构建真正原生 iOS 应用的 Lovable 或 A0 级别工具,但苹果生态的特殊性让这种愿景难以实现。

多年来开发者持续诟病苹果平台的开发体验,但根源性问题始终未获解决,如今这个技术深坑已越发地难以填平。

声明:本文由 InfoQ 翻译,未经许可禁止转载。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
央视5频道直播!全运会乒乓球女团金牌战:孙颖莎率队迎战陈梦

央视5频道直播!全运会乒乓球女团金牌战:孙颖莎率队迎战陈梦

知轩体育
2025-11-19 10:58:56
征服中年女人,无需套路:两颗真心,一生相守

征服中年女人,无需套路:两颗真心,一生相守

青苹果sht
2025-11-04 06:10:40
多部门印发实施方案 支持北京提振和扩大消费

多部门印发实施方案 支持北京提振和扩大消费

中国经济网
2025-11-19 07:58:03
琉球不属日本!50年代琉球老照片:街头到处是中文,琉球女孩漂亮

琉球不属日本!50年代琉球老照片:街头到处是中文,琉球女孩漂亮

生活新鲜市
2025-11-19 00:35:05
浙经贸的三分钟战士大二弟弟火了

浙经贸的三分钟战士大二弟弟火了

杭城村叔
2025-09-11 12:54:47
新加坡来打脸了:不会被中国“远程控制”

新加坡来打脸了:不会被中国“远程控制”

观察者网
2025-11-18 20:31:05
纳斯达克100指数期货涨幅扩大,至盘中新高,现涨0.50%,报24718.99点

纳斯达克100指数期货涨幅扩大,至盘中新高,现涨0.50%,报24718.99点

每日经济新闻
2025-11-19 19:59:05
大连蛇岛上的蛇越来越凶猛,而且还在进化,为啥不把这个岛消灭?

大连蛇岛上的蛇越来越凶猛,而且还在进化,为啥不把这个岛消灭?

诗意世界
2025-11-15 20:26:32
高市早苗天塌了,中方重提“敌国条款”,或清算中日百年恩怨

高市早苗天塌了,中方重提“敌国条款”,或清算中日百年恩怨

历史求所知
2025-11-16 20:38:00
设计院8个月不发工资,没人离职:比没钱更可怕的是“不敢走”

设计院8个月不发工资,没人离职:比没钱更可怕的是“不敢走”

悟话八门
2025-10-15 11:06:51
不合群、耍阴招?被央视点名的王曼昱,"真实处境"被孙颖莎揭开

不合群、耍阴招?被央视点名的王曼昱,"真实处境"被孙颖莎揭开

阅识
2025-10-29 16:36:13
老话说“一个猪肚十副药”,提醒大家50岁后,别忘了常吃猪肚

老话说“一个猪肚十副药”,提醒大家50岁后,别忘了常吃猪肚

素衣读史
2025-09-23 17:38:59
1955年他只是团级干部,授衔时,周总理却说:授予少将军衔

1955年他只是团级干部,授衔时,周总理却说:授予少将军衔

鹤羽说个事
2025-11-19 14:04:37
大学生捐精,女方要求私下见面,承诺给予费用,内幕如何?

大学生捐精,女方要求私下见面,承诺给予费用,内幕如何?

极品小牛肉
2024-03-22 10:46:53
腹斜肌拉伤!将缺阵6周,又一个伦纳德诞生,难怪火箭不给1.25亿

腹斜肌拉伤!将缺阵6周,又一个伦纳德诞生,难怪火箭不给1.25亿

巴叔GO聊体育
2025-11-19 16:44:42
救人时接触私密部位算侵入吗?网友:不是,命都没了还在乎这些啊

救人时接触私密部位算侵入吗?网友:不是,命都没了还在乎这些啊

解读热点事件
2025-10-02 00:10:03
罗晋行程曝光!结婚7年很少回家,半年提6次分手,爱与不爱很明显

罗晋行程曝光!结婚7年很少回家,半年提6次分手,爱与不爱很明显

书雁飞史oh
2025-11-19 20:20:32
心痛!宁波一5个月大婴儿因心脏手术离世,眼角还挂着泪痕

心痛!宁波一5个月大婴儿因心脏手术离世,眼角还挂着泪痕

恪守原则和底线
2025-11-18 10:47:58
意大利哭晕 世界杯附加赛死亡签表浮现 首轮或遇2苦主+决赛碰波兰

意大利哭晕 世界杯附加赛死亡签表浮现 首轮或遇2苦主+决赛碰波兰

我爱英超
2025-11-19 07:14:36
广东大部今晨气温创下半年新低!广州最低仅为10.5℃

广东大部今晨气温创下半年新低!广州最低仅为10.5℃

南方都市报
2025-11-19 12:34:08
2025-11-19 21:52:49
InfoQ incentive-icons
InfoQ
有内容的技术社区媒体
11711文章数 51555关注度
往期回顾 全部

科技要闻

一夜封神,Gemini 3让谷歌找回“碾压感”

头条要闻

公开爱泼斯坦案文件只等特朗普签字 重量级名字或出现

头条要闻

公开爱泼斯坦案文件只等特朗普签字 重量级名字或出现

体育要闻

世界杯最小参赛国诞生!15万人岛国的奇迹

娱乐要闻

史林子出轨对方前妻放锤!

财经要闻

重磅!中金公司拟收购东兴与信达证券

汽车要闻

此刻价格不重要 第5代帝豪本身就是价值

态度原创

家居
教育
旅游
游戏
军事航空

家居要闻

水岸美学 书香人文生活

教育要闻

今年,最没节操的几所英国大学!

旅游要闻

“门票经济”退潮?灵隐寺免门票,多地5A级景区试水免费模式

Uzi再度复出加盟iG组建至臻全神班?辟谣:单纯排位瘾来了

军事要闻

量大管饱 中国军网在海外发布备战视频

无障碍浏览 进入关怀版