前言

本期是 Swift 编辑组自主整理周报的第五期,每个模块已初步成型。各位读者如果有好的提议,欢迎在文末留言。

欢迎投稿或推荐内容。目前计划每两周周一发布,欢迎志同道合的朋友一起加入周报整理。

小时候幸福很简单,长大后简单很幸福。Swift社区有你未领取的小幸福,等你简简单单来开启!👊👊👊

周报精选

新闻和社区:iPhone灵动岛无法适配大部分应用

提案:Swift 5.8 实现的提案

Swift 论坛:conformance 关键字

推荐博文:SwiftUI 新功能 Layout 协议

话题讨论: 大厂养老,你会选择谁

新闻和社区

iPhone 灵动岛无法适配大部分应用

近日,有海外程序员小哥哥曝光了灵动岛的开发代码,并配文称原本想安装完 Xcode 14.1 Beta 版(iOS 开发程序)去了解下 iPhone 14 Pro 的灵动岛 API 接口情况,但没想到,苹果并未开放 API,也就是说第三方开发人员很难自行适配灵动岛这个系统级的交互功能。如果想要适配灵动岛恐怕只能向苹果官方申请开放 API 接口。这也是为什么很多 App 至今都没能适配灵动岛的情况出现。(新浪数码)

App 和 App 内购买项目即将实行价格和税率调整

最早于 2022 年 10 月 5 日起,下列地区 App Store 上的 App 及 App 内购买项目 (自动续期订阅除外) 价格将有所提高:智利、埃及、日本、马来西亚、巴基斯坦、波兰、韩国、瑞典、越南和所有使用欧元货币的地区。在越南,相关的价格提升反映了要求 Apple 代扣代缴适用税款的新规定,其中适用税款包括 5% 的增值税 (VAT) 和 5% 的企业所得税 (CIT)。

您的收益将随之进行调整,并会根据不含税的价格来进行计算。《付费 App 协议》的附录 B 将会更新,表明 Apple 在越南征收和汇付适用税款。

以上调整生效后,在“我的 App”中“价格与销售范围”部分会随即更新。您可以随时在 App Store Connect 中更改您的 App 和 App 内购买项目的价格 (包括自动续期订阅)。如果您有提供订阅项目,您可以选择为现有订阅者保留当前价格。

苹果确认 iOS16 存漏洞影响新机激活

据 MacRumors 看到的一份备忘录,苹果称,“iOS 16 有一个已知的问题,可能会影响到使用开放的 Wi-Fi 网络的设备激活”。为了解决这个问题,苹果表示,用户应该在初始化 iOS 时,在提示连接到 Wi-Fi 网络时选择“用 iTunes 连接到 Mac 或 PC”,然后返回到之前的屏幕,使用 Wi-Fi 再次尝试,直到激活成功。

使用 iOS 16.1 Beta 版和 Xcode 14.1 Beta 版,开发实时活动功能

新的 ActivityKit 框架现已在 iOS 16.1 Beta 版和 Xcode 14.1 Beta 版中推出,探索如何通过这一框架为您的 App 构建实时活动。借由实时更新,实时活动能帮助用户跟踪您的 App 内容。App 的实时活动会显示在锁定屏幕和灵动岛中 — “灵动岛”作为一项全新设计,可以让用户直观、愉悦地体验 iPhone 14 Pro 和 iPhone 14 Pro Max。

实时活动功能和 ActivityKit 将包含在今年晚些时候推出的 iOS 16.1 中。当 iOS 16.1 发布候选版本可用时,您即可将配置了实时活动功能的 App 提交至 App Store。

提案

Swift 5.8 实现的提案

SE-0372 更新稳定排序文档 该提案已在 十三期周报 正在审查的提案模块做了详细介绍。

SE-0369 同步 CustomDebugString 协议到 AnyKeyPath

此提案主要目的是将 CustomDebugStringConvertible 的协议添加到 AnyKeyPath

SE-0367 优化新属性的条件编译 。该提案已在 十二期周报 已通过的提案模块做了详细介绍。

Swift论坛

  1. Swift 5.7 发布! 🥳 新增功能详见:Swift Evolution

  2. Swift Platform Work Group

Swift community 工作组将努力提高 Swift 的平台可用性

工作组内容包括:

  • 拓展 Swift 可用的目标平台
  • 拓展 Swift 可用的主机平台
  • 提高 Swift 现有平台上的 Toolchain
  • 让 Swift 编译器可以在现有的平台上工作比如 Linux 和 Windows
  • 努力打造更好的跨平台 Swift 生态系统

工作组不涉及的内容有:

  • 涉及 Apple 已经支持的平台
  • 涉及低资源和裸机平台
  1. 提议使用 conformance 关键字的让协议符合要求

conformance 关键字的意思是:此声明由程序员定义并满足协议要求conformance 不是 protocol 必须有的关键字。 但是,当 conformance 存在时,除非声明确实符合协议要求,否则程序格式错误。

栗子🌰:

protocol Program {
    func run()
}

struct HelloWorld: Program {
    // OK
    conformance func run() { ... }
    
    // error: function crash() does not fulfill any requirement of the protocol 'Program'.
    conformance func crash() { ... }
}
  1. 提议clock.sleep(for:)

  2. 框架用于web和swift server交互的框架

  1. 讨论在init方法中使用async function

7)讨论PassthroughSubject 和 CurrentValueSubject

关于我们

Swift社区是由 Swift 爱好者共同维护的公益组织,我们会分享以 Swift实战SwiftUlSwift基础为核心的技术内容,也整理收集优秀的学习资料。

特别感谢 Swift社区 编辑部的每一位编辑,感谢大家的辛苦付出,为 Swift社区 提供优质内容,为 Swift 语言的发展贡献自己的力量。