肘子的 Swift 周报 #005

肘子的话

欢迎访问 fatbobman.substack.com 订阅本周报的中英文电子邮件版本。

在10月31日,苹果举办了有史以来最短的产品发布会。如预期,苹果发布了基于 M3 芯片的 MacBook Pro 和 iMac。

就数据来看,M3 芯片在 CPU 方面的提升中规中矩,不过 GPU 性能表现出色,特别是提供了硬件级别的光线追踪支持。

我推测,明年发布的 Apple Vision Pro 很可能会使用这款 M3 芯片,这不仅能进一步提高 Apple Vision Pro 的视觉效果,还可能对续航时间有所帮助。为了应对 Meta Quest 3 的低价格,苹果必须让 Apple Vision Pro 展现出足够的性能优势。

除了硬件规格,我对 Apple Vision Pro 的担忧主要来自开发工具的不完善。SDK 的进展缓慢,承诺的 Unity 支持尚未实现,Reality Composer Pro 的功能远未达到预期。总的来说,尽管苹果似乎已经为 Vision Pro 的开发生态做了一些布局,但还远远不够。

27 英寸的 iMac 仍然未出现,可能苹果已经彻底放弃了这款产品。如果未来还会推出大尺寸的 iMac,我估计尺寸会超过 32 英寸。

前一期内容全部周报列表

原创

如何通过 Persistent History Tracking 观察 SwiftData 的数据变化

fatbobman(东坡肘子)

在数据库发生变化时 Persistent History Tracking( 持久化历史跟踪 )会向订阅者发送提醒,开发者可以借此机会对同一数据库进行的修改做出响应,包括其他应用、组件(同一个 App Group)和批处理任务。由于 SwiftData 集成了对持久化历史跟踪功能的支持,无需编写额外的代码,订阅通知、合并事务等工作都会由 SwiftData 自动完成。

然而,在某些情况下,开发者可能希望自行响应持久化历史跟踪的事务,以获得更多的灵活性。本文将介绍如何在 SwiftData 中通过持久化历史跟踪观察特定数据变化的方法。

近期推荐

2023 年每个软件开发者都必须知道的关于 Unicode 的最基本的知识(仍然不准找借口!)

Nikita Prokopov 中文翻译:OverflowCat

Unicode 于 1991 年首次发布,这是一个旨在统一所有历史和现存人类语言的标准,使其能在计算机上使用。30 年过去了,Swift 现在仍是所有主流语言中唯一能正确判断"🤦🏼‍♂️"长度的语言。部分原因是因为 Swift 在创建时就把对 Unicode 的支持作为其核心功能之一,另一部分原因是 Unicode 每年都在更新,规范也在变化,语言的开发团队必须持续投入精力来维持对 Unicode 码表的更新。

在这篇文章中,作者详尽地介绍了程序员在 2023 年需要了解的 Unicode 的基础知识。这是一篇极具价值的文章,我强烈推荐每位程序员阅读。它涵盖了Unicode 的关键概念,以及在实际开发中需要注意的问题。

记录上架 AppStore 以 4.3 为由被拒的故事

Kiecooboi

对于一个开发者来说,将自己精心开发的应用提交到 App Store,却因为违反了 4.3 条准则而被拒绝,这绝不是一个美好的回忆。Kiecooboi 在提交他的首个应用时也遇到了这个问题。无论通过网站还是邮件申诉,拒绝的理由都是相同的:"shares a similar binary, metadata, and/or concept as apps submitted to the App Store by other developers"。经过多次尝试后,Kiecooboi 终于获得了与审核人员通话的机会。通过电话沟通,发现问题只是因为对方认为支持网址使用 Twitter 不妥当。经过修改后,应用成功上线。他在 Discord 中记录了这次沟通的经历。经过作者同意,我在 Twitter 上转载了这篇经历,希望对大家有所帮助。

Swift, meet WinRT

Steve Kirbach

Windows 运行时( WinRT )基于组件对象模型 (COM) API,根据设计,可通过语言投影访问它。 投影将隐藏 COM 详细信息,并为给定语言提供更自然的编程体验。The Browser Company 构建了一个语言投影工具,用于为 WinRT 创建符合习惯用法的 Swift 语言绑定,并将其应用于开发 Arc 的 Windows 版本中。该工具现已开源并发布在github.com/thebrowserc... Kirbach 首先介绍了 Windows 桌面开发的历史,探讨了在 Windows 上使用 Swift 进行开发的可能性,并提供了一个完整的端到端示例,展示了如何使用 Swift/WinRT 代码生成器和 WinUI 3。

The Browser Company 正在致力于将 Swift 应用于 Windows 平台,在周报的第二期中,我们还介绍了他们的另一篇关于在 Windows 上使用 Swift 的文章:Interoperability: Swift's Super Power

Advanced SwiftUI Animations -- Part 7: PhaseAnimator

Javier

在 WWDC 2023 中,SwiftUI 的动画功能得到了显著的增强,其中包括本文介绍的阶段动画(PhaseAnimator)。PhaseAnimator 视图和 phaseAnimator 修饰器使用开发者提供的一系列阶段信息来实现内容的动画效果,并持续或触发式地进行播放,每个阶段定义了动画中的一个离散步骤。在这篇文章中,Javier 对阶段动画的使用方法进行了详尽的介绍,他还指出了在阶段动画中使用 Text 视图可能出现的一个潜在问题,并提供了解决方案。

Promotional offers: Increase App Revenue using discounts

Antoine van der Lee

促销优惠可以为自动续订订阅产品提供折扣价格。它们能有效地吸引回流的订阅者或保留当前的订阅者,并在操作得当时带来更多利润。在这篇文章中,Antoine van der Lee 解释了促销优惠的概念,展示了在 App Store Connect 中配置促销优惠的方法,并推荐了一些实现促销优惠的相关文档,还分享了几种常见的增加收入的方法。本文适合每一个希望增加 App 收入的开发者。

Creating Shortcuts with App Intents

Mark Struzinski

快捷方式允许用户在不启动和导航到特定屏幕以执行任务的情况下与你的应用程序进行交互。过去,添加快捷方式并将其暴露给系统会比较麻烦和耗时。在 iOS 16 中,Apple 改进了向 iOS 添加和暴露应用程序快捷方式的过程。新的 App Intents 框架允许开发者使用你日常使用的相同语言(Swift)创建快捷方式!一切都是静态类型的,并且在安装时即可被 iOS 接收。在本文中,Mark Struzinski 将通过一个完整的示例向你展示如何通过 App Intents 框架为应用添加快捷方式。

友情推广

SwiftGG 纳新了!

SwiftGG 一直尝试将社区里有前瞻性的,有价值的内容呈现到大家视野中,除了会邀请国内各个领域的大牛,还会努力成为与国外优秀创作者建立联系的纽带,以更宽广,更国际化的视角来丰富创作者们的视野。近期 SwiftGG 将向整个技术社区开放纳新,这次开放的岗位有:

  • 内容创作和生产项目组负责人一名
  • 技术支持项目组负责人一名
  • 线上和线下活动项目组
  • 运营增长项目组负责人一名
  • 内容创作和生产项目组成员 3-5 名
  • 技术支持项目组成员若干名 3-5 名
  • 线上和线下活动项目组若干名 3-5 名
  • 运营增长项目组若干名 3-5 名

如果你对 SwiftGG 的理念认同,请往 zhangsiqi1988@gmail.com 投递你的简历,目标职位和个人介绍吧!

PS:SwiftGG 正在筹备 2024 年的面向全亚洲的,全线下的 Apple 开发者生态大会。请关注他们的新网站以获取更多信息:swiftgg.team

THANK YOU

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

欢迎访问 fatbobman.substack.com 订阅本周报的中英文电子邮件版本。

相关推荐
恋猫de小郭14 小时前
什么?Flutter 可能会被 SwiftUI/ArkUI 化?全新的 Flutter Roadmap
flutter·ios·swiftui
威化饼的一隅19 小时前
【多模态】swift-3框架使用
人工智能·深度学习·大模型·swift·多模态
靴子学长2 天前
iOS + watchOS Tourism App(含源码可简单复现)
mysql·ios·swiftui
opentogether3 天前
Swift 的动态性
开发语言·ssh·swift
苍墨穹天3 天前
SWIFT基本使用
linux·swift
SchneeDuan4 天前
从源码分析swift GCD_DispatchGroup
ios·swift·源码分析·gcd
请叫我飞哥@5 天前
iOS在项目中设置 Dev、Staging 和 Prod 三个不同的环境
ios·xcode·swift
Cedric_Anik7 天前
iOS渲染概述
ui·ios·swift
hxx2218 天前
iOS swift开发系列--如何给swiftui内容视图添加背景图片显示
ios·swiftui·swift
胖虎18 天前
SwiftUI - (十九)组合视图
ios·swiftui·swift·组合视图