iPhone Duo 带来的机遇与挑战 - 肘子的 Swift 周报 #153

iPhone Duo 带来的机遇与挑战 - 肘子的 Swift 周报 #153

💡 原文中文,约5600字,阅读约需14分钟。
📝

内容提要

iPhone Duo 发布后,折叠屏适配成为开发者难题:多姿态、多屏幕增加 UX 设计成本,Flutter、React Native 等跨平台框架难以获取折叠状态信息。同时,AI Coding 降低原生开发成本,Liquid Glass、Duo 抬高平台特性价值,Notion、Shopify 等企业迁回原生开发,原生框架从偏好题变为成本题。

🔎

延伸解读

折叠屏适配:UX 设计比 UI 适配更难

iPhone Duo 的内屏支持展开、半折叠等多种姿态,苹果提供的 API 能告知可用空间和铰链位置,但无法解决 UX 层面的问题——半折叠时用户究竟想看到什么,需要开发者重新设计体验。每增加一种姿态,就多一次重新设计的成本。对于使用 Flutter、React Native 的团队,挑战更前置:Flutter 的 MediaQuery.displayFeatures 在 Duo 上返回空列表,React Native 则没有官方折叠状态 API,跨平台框架在屏蔽平台差异与暴露平台能力之间的取舍更加艰难。

原生开发回归:从偏好题到成本题

AI Coding Agent 大幅降低了原生开发与维护成本,同时 Liquid Glass、iPhone Duo 等平台特性不断抬高用足平台能力的价值,跨平台方案的性价比正被两头挤压。Notion 正将苹果端 UI 迁移到 SwiftUI,Shopify 也宣布移动端从 React Native 迁回 Swift 与 Kotlin,理由之一是编码模型的进步削弱了“避免重复造轮子”这一跨平台优势。当设备本身再次成为应用设计的一部分,“使用原生框架”正从偏好题变为成本题。

生态意义:销量之外,硬件形态变化驱动开发转向

不同机构对 iPhone Duo 初期销量预测不一:Counterpoint 预计 2026 年内出货量最高约 600 万部,IDC 预计上市后前 12 个月约 1000 万部。虽然占整体 iPhone 销量比例不大,但已远超 Vision Pro 上市两年半的几十万销量,足以支撑针对性应用开发。Duo 相比 Vision Pro 具备更强的社交展示性,其“特别感”可能催生爆款应用,进而推动销量。对苹果生态而言,Duo 的生态意义不在于多卖几百万台设备,而在于硬件形态再次成为应用设计的一部分,促使开发者重新评估框架

Q&A

iPhone Duo 发布后,开发者面临哪些适配挑战?

iPhone Duo 有内外两块屏幕,内屏可展开、半折叠等多种姿态,适配难度高。苹果提供了适配 API 解决 UI 层面问题,但 UX 设计需要针对每种姿态重新设计体验。对于使用 Flutter、React Native 的团队,问题更前置:Flutter 的 MediaQuery.displayFeatures 在 Duo 上返回空列表,React Native 没有折叠状态相关官方 API,导致难以获取折叠信息。

为什么一些企业如 Notion、Shopify 从跨平台方案迁回原生开发?

AI Coding Agent 大幅降低了原生开发与维护成本,同时 Liquid Glass、Duo 等平台特性变化抬高了用足平台特性的价值。跨平台方案的性价比被两头挤压。Notion 将苹果端 UI 迁移到 SwiftUI;Shopify 将移动端从 React Native 迁回 Swift 与 Kotlin,理由之一是编码模型的进步削弱了跨平台避免重复造轮子的成本优势。

iPhone Duo 的初期销量预测如何?

Counterpoint 预计其 2026 年内出货量最高约 600 万部;IDC 预计上市后前 12 个月可能达到约 1000 万部。虽然在整个 iPhone 销量中只占一小部分,但相比 Vision Pro 上市两年半的几十万销量,已足以支撑针对该设备开发的应用。

Swift 6.4 中新增了哪些 Hashable 支持?

Swift 6.4 新增了 Dictionary.Keys、CollectionOfOne、EmptyCollection 和 UnownedTaskExecutor 的 Hashable 支持。其中 Dictionary.Keys 可直接放入 Set 或作为 Dictionary 的 key,两个 Dictionary.Keys 只要包含相同的键就视为相等,顺序不参与比较与哈希。Dictionary.Values 没有获得该能力,因为值可以重复,需要多重集合语义。

Vein 持久化框架如何优化大模型列表性能?

Vein 采用与 SwiftData Model 类似的声明方式,默认属性预加载、关系惰性加载。不同之处在于,给属性标注 @LazyField 后,它会推迟到真正被访问时才读取。因此在只显示标题的列表场景中,无需拆分模型也能取得不错的性能表现。

Homebrew 7 对 Intel Mac 的支持有何变化?

Homebrew 7.0.0 发布后,Apple Silicon Mac 上的 macOS 15–27 属于完整支持范围,而 Intel Mac 已全部降为 Tier 3,不再获得完整 CI 支持和新的 bottles,并计划在 2027 年 9 月或之后彻底停止支持。仍在 Intel Mac 或较旧 macOS 上使用 Homebrew 的开发者需要特别留意。

🏷️

标签

➡️

继续阅读