老司机 iOS 周报 #333 | 2025-04-28 #4987
ChengzhiHuang
started this conversation in
General
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
老司机 iOS 周报,只为你呈现有价值的信息。
你也可以为这个项目出一份力,如果发现有价值的信息、文章、工具等可以到 Issues 里提给我们,我们会尽快处理。记得写上推荐的理由哦。有建议和意见也欢迎到 Issues 提出。
下周就是五一劳动节了,老司机周报轮休一周,提前祝大家劳动节快乐!
新闻
重磅上线 | 一次性购买通知 ONE_TIME_CHARGE 即将正式发布 / A new App Store Server Notification type will soon be available
@SeaHub:自 2024/06/10 沙箱环境首发以来,该通知历经大半年的稳定性验证,现即将进入现网发布阶段。以下内容值得我们重点关注:
全商品类型覆盖能力
突破原有仅自动续期订阅型存在后台发货通知的限制。新通知囊括消耗型商品、非续期订阅型商品及非消耗型商品等所有类型,彻底解决一次性购买场景的后台通知缺位问题
客户端依赖解耦
通过一次性购买通知,针对发货阶段,我们不再需要依赖客户端与服务端通信。客户端不再作为发货主路径,实现发货逻辑的解耦
实时发货闭环
结合一次性购买通知与 appAccountToken 订单透传字段,可构建起媲美国内主流支付平台(微信支付 / 支付宝)的实时发货体系
该通知于 2025/05/27 正式上线,推荐大家优先接入。我们通过一次性购买通知更加优雅的处理订单发货场景,构建更健壮的业务履约体系
新手推荐
🐎 Using singletons in Swift 6
@Smallfly:本文介绍了 Swift 6 中单例模式因并发安全性触发的编译错误及解决方案。针对「全局可变状态不安全」和「非
Sendable
类型共享状态」等典型问题,文章提出多场景应对策略:通过MainActor
隔离属性或类型、将共享实例重构为actor
、使用Sendable
协议确保类型安全,并谨慎使用nonisolated(unsafe)
或@unchecked Sendable
作为临时过渡。作者强调遵循 Swift 6 规范的同时,平衡代码安全性与迁移成本。🐎 Using Swift ’ s defer keyword within async and throwing contexts
defer
常用在代码块(花括号)作用域结束时执行代码。我们常常用来清理在当前作用域内创建的资源或其他上下文,如配置 lock-unlock。这一思想在 async 方法中同样适用,defer
为异步流程提供一个处理成功或失败绝佳的节点,类似异步的 finally。不过defer
会打破传统的流程控制流顺序,带来便利的同时也会削弱一些代码可读性。详细可阅读原文,文章从这几方面介绍了defer
的应用:defer
关键字基础介绍。文章
🌟 🐕 Dynamically Constructing Generic Types in Swift
@JonyFang: 在 Swift 这种强类型语言里,运行时拼泛型一直是个痛点 —— 比如我们想动态生成
Optional<T>
、Array<T>
这样的类型,通常只能在编译期确定。Metadata
、ProtocolDescriptor
、ConditionalProtocolDescriptor
等核心数据布局,并封装成易用的辅助类型,帮你在运行时拿到任意类型的信息和协议类型。_ConditionalContent<TrueContent, FalseContent>
举例,演示如何调用元数据访问器函数,动态组装出三种常见场景下的泛型:optional
、either
、atom
,整个过程零配置、可复用。如果你在做框架或底层库,需要在运行期才知道类型,或者想探索 Swift ABI / Runtime 的更多玩法,这篇文章绝对值得一读。
🐕 20 years of Git. Still weird, still wonderful.
@AidenRao:这篇文章回顾了 Git 诞生 20 周年的历程,最初由 Linus 为解决 Linux 内核协作问题开发,以高效跟踪代码快照为核心设计。从仅 7 个底层命令的"内容跟踪器"起步,逐步整合社区贡献(如 rebase、log 功能),演变为分布式版本控制系统。GitHub 的诞生及其章鱼猫形象推动普及,使其成为全球开发基石。20 年来核心数据结构和"愚蠢但极快"的理念未变,持续支撑从代码管理到内容分发的创新(如 GitButler),奠定现代软件开发基础设施地位。
🐕 SwiftFiddle/swiftregex: Swift Regex is an online tool to learn, build and test Swift Regex Regex and Regex Builder.
@Barney:Swift Regex 是开源在线工具,支持 Swift 正则表达式及 Regex Builder 的实时测试与调试,提供语法高亮和错误定位。基于 Swift、JavaScript 及 Vapor 框架开发,采用 MIT 协议,含 Docker 部署配置。支持命名捕获组、自动化依赖更新及安全策略,适合开发者快速验证正则逻辑。
🐕 Creating MCP Servers in Swift
@Kyle-Ye:作者深入探讨了如何在 Swift 中创建 MCP 服务器。这篇文章不仅为开发者提供了有关 MCP(Multi-Channel Protocol)通信协议的详细背景,还通过代码示例展示了如何在 Swift 中实现一个基本的 MCP 服务器,最后介绍了如何在 VSCode 和其他客户端中使用该 MCP 服务器。
🐕 Make your app content show on Spotlight
@极速男孩:这篇文章介绍了如何让应用内容出现在 iOS 的 Spotlight 搜索中。主要有两种方法:一是通过 AppShortcutsProvider.updateAppShortcutParameters() 自动索引应用数据;二是使用 Core Spotlight API 手动创建索引,步骤包括为数据模型实现 IndexedEntity 协议、设置 attributeSet 元数据、在添加或删除内容时分别调用 indexAppEntities 和 deleteAppEntities 方法。文章还提到从 iOS 18.4 起,可以用 hideInSpotlight 控制内容是否显示在搜索结果中。
内推
重新开始更新「iOS 靠谱内推专题」,整理了最近明确在招人的岗位,供大家参考
具体信息请移步:https://www.yuque.com/iosalliance/article/bhutav 进行查看(如有招聘需求请联系 iTDriverr)
关注我们
我们是「老司机技术周报」,一个持续追求精品 iOS 内容的技术公众号,欢迎关注。
关注有礼,关注【老司机技术周报】,回复「2024」,领取 2024 及往年内参
同时也支持了 RSS 订阅:https://github.com/SwiftOldDriver/iOS-Weekly/releases.atom 。
说明
🚧 表示需某工具,🌟 表示编辑推荐
预计阅读时间:🐎 很快就能读完(1 - 10 mins);🐕 中等 (10 - 20 mins);🐢 慢(20+ mins)
This discussion was created from the release 老司机 iOS 周报 #333 | 2025-04-28.
Beta Was this translation helpful? Give feedback.
All reactions