首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >肘子的 Swift 周报 #057| 超宽虚拟屏很棒,但我们期待更多

肘子的 Swift 周报 #057| 超宽虚拟屏很棒,但我们期待更多

作者头像
东坡肘子
发布2024-11-23 09:30:06
发布2024-11-23 09:30:06
4700
举报

肘子的话

超宽虚拟屏很棒,但我们期待更多

visionOS 2.2 测试版本的发布,终于为 Apple Vision Pro 带来了期待已久的“宽”和“超宽”虚拟屏幕模式。在超宽模式下,使用者眼前会呈现出一个可以超越物理视野限制的庞大显示空间。尽管 Apple Vision Pro 的硬件分辨率有其局限性,但得益于焦点渲染(Foveated Rendering)技术的加持,虚拟屏幕不仅较此前更为清晰,更能带来堪比 8K 显示器的视觉体验。

这项功能的推出让不少 Apple Vision Pro 用户十分欣喜,纷纷重拾已经搁置的设备,沉浸在超宽屏幕带来的全新体验中。就我个人的使用体验而言,超宽虚拟屏幕为开发工作营造了一种独特的沉浸感,能让我在相当长的时间内保持专注 —— 直到设备的佩戴重量打断这种沉浸体验。

超宽模式很可能会延长用户的日常使用时长,同时也可能催生新的应用形态——专门针对 Apple Vision Pro 超宽屏幕优化的 macOS 桌面应用。从某种角度来看,虚拟屏幕功能的成功倒是显得有些“反直觉”:苹果原本期望将 Apple Vision Pro 打造成一款不依赖其他设备的独立空间计算设备,但无论如何,虚拟屏幕功能的增强无疑是对现有用户的重大利好,也展现了苹果持续完善 visionOS 生态的决心。

超宽虚拟屏幕的推出证明了 Apple Vision Pro 的硬件潜力远未被充分释放。随着苹果开放更多功能性 API,开发者有望为这款设备创造出更多突破想象的创新体验。虽然这些改进可能不会立即带来销量的显著提升,但能在空间计算领域开拓更多可能性,也足以彰显首代产品的历史价值。

值得注意的是,虚拟屏幕功能并不依赖 Apple Vision Pro 上的一些“高大上”组件(功能有限、徒增成本和重量)。在保持核心计算能力的前提下,推出一款更为亲民的产品型号,无疑能吸引更多持观望态度的潜在用户。期待 Apple Vision Pro 能在未来释放出更多令人惊喜的潜能。

前一期内容全部周报列表

原创

掌握 Core Data 和 SwiftData 中的数据追踪与通知[3]

Fatbobman(东坡肘子)[4]

Core Data 和 SwiftData 作为 Apple 生态系统中强大的持久化框架,不仅提供了 @FetchRequest@Query 这样的声明式数据监听工具,更内置了一套完整的数据追踪与通知机制。了解和掌握这些机制对于构建健壮的数据驱动型应用至关重要。本文将带你探索从简单的自定义通知,到强大的持久化历史追踪(Persistent History Tracking 和 SwiftData History)等多层次的解决方案,助你应对各种复杂的数据同步场景。

近期推荐

逆流而上的设计 - Swift 所有权和 ~Copyable[5]

王巍[6]

Rust 的所有权系统以严格的规则确保内存安全,广泛应用于系统编程和高性能计算。Swift 开发团队同样早已认识到所有权的重要性,并在 5.9 版本中首次引入了相关特性,随后在 6.0 版本进一步完善。本文中,王巍深入探讨了 Swift 的所有权机制及 ~Copyable 等关键字,指出尽管理解 ~Copyable 并非 Swift 开发的必修课,但在资源独占、生命周期控制等场景中,它将显著提升代码的稳定性和效率。

使用 VS Code Dev Containers 进行 Swift 开发 (Developing in Swift with VS Code Dev Containers)[7]

Natan Rolnik[8]

开发容器[9](Dev Containers)是一种将 Docker 容器用作完整开发环境的技术方案,适用于运行应用程序、隔离开发工具和依赖库,同时支持持续集成与测试。简而言之,Dev Containers 允许开发者在 Docker 容器中运行和调试可执行文件,确保本地开发和远程部署环境的一致性。在本系列文章中,Natan Rolnik 将深入介绍如何使用 VS Code Dev Containers 进行 Swift 开发,并展示如何通过这一技术简化开发流程。

在 SwiftData 中实现 Sendable (Being Sendable with SwiftData)[10]

Leo G Dion[11]

在 SwiftData 中,使用符合 Sendable 协议的 PersistentIdentifier 可以确保在多线程环境下安全传递数据,但这往往会导致丢失模型的类型信息。本文中,Leo G Dion 提出了一种解决方案,即通过构建一个幻影类型(Phantom Type)结构体,在传递标识符的同时保留数据类型信息,确保线程安全的同时仍能辨别模型类型。

在 Xcode 中格式化 Swift 代码 (Swift Format in Xcode)[12]

Sarah Reichelt[13]

在苹果的开发生态中,有两个名称相近、功能相似的代码格式化工具:由 Nick Lockwood 开发的 SwiftFormat[14] 提供了更丰富的定制选项,而苹果自己开发并集成到 Xcode 16 中的 swift-format[15] 则是内置的选择。在这篇文章中,Sarah Reichelt 测试了 swift-format,并将其与 SwiftLint 和 Prettier 等工具进行了对比。她期望 Apple 或 Swift 社区能在未来推出 Swift 风格指南,同时支持自动保存时进行格式化,以进一步提升开发体验。

SwiftUI 自适应流式布局 (SwiftUI Self-Sizing Flow Layouts)[16]

Keith Harrison[17]

自 iOS 16 开始,SwiftUI 提供了 Layout 协议,开发者可以利用它构建自定义的布局容器。Keith Harrison 在本文中探讨了如何在 SwiftUI 中实现类似 UICollectionViewFlowLayout 的效果,实现每行或每列项目数的自动调整。

遗憾的是,Layout 协议当前仍然不支持懒加载,这使其在处理大数据量场景时受到限制。

在 Apple 设备上运行 Llama 3.1 与 Core ML (On Device Llama 3.1 with Core ML)[18]

苹果官方文档。详细介绍了如何在 Apple Silicon 设备上部署中型大语言模型 Llama 3.1,并通过一系列优化提升性能以支持实时应用。在 macOS Sequoia 上,采用状态缓存(Key-Value Cache)和块级 Int4 量化等技术优化后,8B 参数量的 Llama-3.1-8B-Instruct 模型能够实现约 33 tokens/s 的解码速度,显著提升了本地推理效率。

活动

Let's visionOS 2025[19]

Let's visionOS 2025[20] 将于 2025 年 2 月 28 日至 3 月 2 日在中国上海举办。Let's visionOS 是全球范围内首个聚焦于空间计算和 Apple Vision Pro 应用与开发的大会,并在今年初于北京成功举办。2025 年的活动主题将进一步扩展,涵盖空间计算人工智能iOS 领域。更多活动详情请关注官网。

往期内容

#056 Pixelmator 并购背后的思考

#055 让技术为我所用,不要被其反噬

#054 安全、便利与隐私

THANK YOU

如果你觉得这份周报或者我的文章对你有所帮助,欢迎 点赞赞赏,并将其 转发 给更多的朋友。

参考资料

[1]

weekly.fatbobman.com: https://weekly.fatbobman.com

[2]

肘子的 Swift 记事本: https://fatbobman.com

[3]

掌握 Core Data 和 SwiftData 中的数据追踪与通知: https://t.ly/qhYT4

[4]

Fatbobman(东坡肘子): https://x.com/fatbobman

[5]

逆流而上的设计 - Swift 所有权和 ~Copyable: https://t.ly/OjlJZ

[6]

王巍: https://x.com/onevcat

[7]

使用 VS Code Dev Containers 进行 Swift 开发 (Developing in Swift with VS Code Dev Containers): https://t.ly/daiXz

[8]

Natan Rolnik: https://x.com/SwiftToolkit

[9]

开发容器: https://containers.dev/

[10]

在 SwiftData 中实现 Sendable (Being Sendable with SwiftData): https://67293702491ba95a86dfc24e--brightdigit.netlify.app/tutorials/swiftdata-sendable/?issue=057&utm_source=fatbobman%20weekly%20issue%2057&utm_medium=email&utm_campaign=fatbobman%20weekly

[11]

Leo G Dion: https://x.com/leogdion

[12]

在 Xcode 中格式化 Swift 代码 (Swift Format in Xcode): https://t.ly/5uMVv

[13]

Sarah Reichelt: https://x.com/trozware

[14]

SwiftFormat: https://github.com/nicklockwood/SwiftFormat

[15]

swift-format: https://github.com/swiftlang/swift-format

[16]

SwiftUI 自适应流式布局 (SwiftUI Self-Sizing Flow Layouts): https://t.ly/u-Uta

[17]

Keith Harrison: https://x.com/kharrison

[18]

在 Apple 设备上运行 Llama 3.1 与 Core ML (On Device Llama 3.1 with Core ML): https://t.ly/QjHhc

[19]

Let's visionOS 2025: https://t.ly/H-xlV

[20]

Let's visionOS 2025: https://t.ly/H-xlV

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-11-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 肘子的Swift记事本 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 肘子的话
    • 原创
  • 掌握 Core Data 和 SwiftData 中的数据追踪与通知[3]
    • 近期推荐
  • 逆流而上的设计 - Swift 所有权和 ~Copyable[5]
  • 使用 VS Code Dev Containers 进行 Swift 开发 (Developing in Swift with VS Code Dev Containers)[7]
  • 在 SwiftData 中实现 Sendable (Being Sendable with SwiftData)[10]
  • 在 Xcode 中格式化 Swift 代码 (Swift Format in Xcode)[12]
  • SwiftUI 自适应流式布局 (SwiftUI Self-Sizing Flow Layouts)[16]
  • 在 Apple 设备上运行 Llama 3.1 与 Core ML (On Device Llama 3.1 with Core ML)[18]
    • 活动
  • Let's visionOS 2025[19]
    • 往期内容
  • THANK YOU
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档