肘子的 Swift 周报 #054|安全、便利与隐私

194 阅读6分钟

issue54.jpg

欢迎访问 weekly.fatbobman.com 订阅本周报的中英文电子邮件版本。你也可以直接访问我的博客 肘子的 Swift 记事本

肘子的话

安全、便利与隐私

在数字浪潮的冲击下,安全、便利与隐私始终是一个永恒的命题。据 The Register 报道,苹果最新提案建议大幅缩短 SSL/TLS 证书的有效期:从现行的 398 天开始,预计 2025 年缩短至 200 天,2026 年减至 100 天,到 2027 年最终定为 45 天。

虽然该提案在 CA/B 论坛的投票中获得通过的可能性不大,但包括苹果、谷歌在内的科技巨头们很可能会坚持推进这一政策。诚然,加强互联网安全性是大势所趋,但频繁更新证书带来的额外工作负担,无疑会给许多开发者和运维人员带来新的挑战。

如今,每个人都在被迫掌握越来越多的密码,安装各式各样的验证应用。就拿我的个人经历来说,近几个月来,我的微软账户几乎每天都会遭遇登录尝试。幸运的是,由于启用了双重认证机制,账户安全得到了可靠保障。不过,手机和手表频繁弹出的认证提示,也确实带来了些许困扰。

作为一个长期的 Safari 用户,我对它的偏爱很大程度上源于其与苹果钥匙串(现已更名为"密码")的无缝集成。此外,苹果提供的匿名账户功能也让我在注册各类服务时,能够在保护隐私的同时,享受到便捷的登录体验。

生物识别技术无疑为用户带来了较为轻松的验证方式,但遗憾的是,许多服务商和硬件制造商还未能赢得用户的充分信任。

每当我看着手机中各式验证应用,内心不免升起一丝忧虑。我们终将步入老年,记忆力和管理能力也将日渐衰退。那时的我们,会不会从数字世界的积极参与者,沦为被时代抛在身后的观望者?设想一下,当我们步入暮年,可能会因为记不住复杂的密码、难以操作多重认证程序、甚至看不清验证码,而逐渐与这个数字世界失去联系。

我衷心期待这种情况能得到改善,能够构建一个既保障隐私,又兼具安全性和便利性的统一数字生活环境。

如果必须在安全、便利与隐私这三者之间做出取舍,你会选择牺牲哪一项?

前一期内容全部周报列表

原创

以 SwiftData 之道,重塑 Core Data 开发

Fatbobman(东坡肘子)

在现代应用开发中,高效的持久化框架至关重要。SwiftData 的出现,曾让众多 Core Data 开发者眼前一亮,大家期待着一个融合现代编程理念的新时代到来。本篇文章将探讨如何在 Core Data 中应用 SwiftData 的思维方式,重点关注数据建模和并发编程。

近期推荐

写时复制及 Swift-CowBox 宏 (Copy On Write and the Swift-CowBox Macro)

Natan Rolnik

写时复制(Copy On Write, COW)是一种通过延迟复制来优化内存使用的技术:只有在修改内容时才进行数据复制,未修改时则共享引用,从而提升性能和减少内存占用。Swift 广泛使用值类型,在此过程中 COW 成为提高效率的关键机制。Natan Rolnik 详细解析了 COW 的原理,并介绍了 Rick Van Voorden 开发的 Swift-CowBox 宏,该宏简化了为自定义类型实现 COW 的过程,减少了重复代码的编写负担。

Swift 的 @preconcurrency 属性解析 (So how does this whole @preconcurrency thing work?)

Matt Massicotte

许多开发者在转向 Swift 6 后发现现有代码难以满足新编译器的并发要求。这时,@preconcurrency 成为一种简化并发代码、提升 API 兼容性的有力工具。Matt Massicotte 在本文中深入解析了 @preconcurrency 的三大主要用途及其在实际开发中的应用场景。Massicotte 强调,尽管该工具在处理协议隔离、旧 API 兼容性以及跨模块导入等方面非常有效,但开发者需谨慎使用,以免掩盖潜在的设计缺陷,使问题在后期更难排查和修复。

SwiftUI 动画的图解说明

よぺ

SwiftUI 的动画曲线主要分为两大模型:UnitCurve 和 Spring。UnitCurve 基于 (0,0) 和 (1,1) 两点之间的曲线,通过控制曲线形状来调节动画速度,如 linearease 系列动画。Spring 则模拟弹簧的运动,使用质量、刚度和阻尼等参数实现更自然的动态效果。よぺ 详细解析了这两种动画模型的原理与实现,并通过代码和动图展示了如何灵活运用它们。作者强调,在需要模拟自然运动时,Spring 模型优于传统的 linearease 系列动画,建议开发者优先使用。

探索 Cursor (Exploring Cursor)

Rudrank Riyam

作为一款以 AI 辅助为核心特色的代码编辑器,Cursor 自发布以来迅速吸引了大量开发者的关注。借助插件和第三方库,苹果生态的开发者如今也可以使用 Cursor 构建包括 iOS 项目在内的应用,并体验 AI 带来的高效开发体验。Rudrank Riyam 在其系列文章中详细介绍了如何使用 Cursor 优化开发工作流,提供了实用的设置指南和时间管理等技巧,帮助开发者减少上下文切换,提高工作效率。

谨防 UserDefaults:隐藏错误与数据丢失的故事 (Beware UserDefaults: a tale of hard to find bugs, and lost data)

Christian Selig

UserDefaults 提供了简单且线程安全的 API,支持数据的持久化和序列化,因此被广泛用于存储非敏感和非大量数据。然而,Christian Selig 在本文中通过亲身经历警告开发者:尽管 UserDefaults 有诸多优势,但如使用不当可能引发严重的错误和数据丢失。Selig 指出,随着 iOS 系统的不断演进(如预热机制和 Live Activities 的引入),UserDefaults 的行为变得越来越复杂且难以预测。因此,开发者应深入了解其潜在风险,以减少错误并避免数据丢失。

往期内容

THANK YOU

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

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