肘子的 Swift 周报 #004

肘子的话

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

"语雀"是中国知名的云端笔记服务商,定位为知识库工具,备受IT企业和开发者的喜爱。然而,上周语雀遭遇严重的线上故障,持续了整整 7 个小时。再加上几个月前创始人离职的事件,网络上一度流传各种猜测。最终,问题得到解决,为了平息舆论,语雀向用户提供了六个月的免费会员资格作为补偿。

这次故障事件引发了人们对云端服务的担忧,并重新激起了对本地化存储的兴趣,即将数据和内容保存在本地设备上,而不仅仅依赖于云端服务。

这几天,我的 Twitter 时间线上出现了大量有关 Local First 的讨论。许多朋友开始将保存在云端的内容转存至本地,有些甚至完全放弃了云端服务,转而使用纯本地化的应用。

然而,云端服务并非完全没有优势。云端服务能提供便捷的协作和共享功能,使团队成员能够实时访问和编辑文档。此外,云端服务通常具备高可用性和备份机制,确保数据的持久性和可靠性。

无论采用哪种方式,个人文档都应该有多种备份方式来确保安全。同时,在选择云文档服务商时,文档易导出性和与其他平台的互通性也是重要的考量因素。

通过这次语雀故障事件,我们可以看到 Local First 理念在用户中逐渐普及和接受。这也提醒云端服务提供商们要更加关注用户需求,提供更加稳定可靠的服务,以满足不同用户对数据存储和管理的需求。

PS:在上周的投票中,维持英文标题的选项以微弱的优势获得了胜利。如果你有什么意见或建议,请在评论中反馈。

前一期内容全部周报列表

原创

掌握 TipKit:进阶

fatbobman(东坡肘子)

TipKit 的精髓不在于外在的视觉效果,而在于内在的逻辑表达。它帮助开发者以声明的方式描述提示生成的规则,而提示的具体实现完全可以自定义。我们可以把 TipKit 想象成一个判断提示显示需求的规则引擎,至于如何可视化这些规则,则取决于开发者自己。在本文中,我们将讨论一些与 TipKit 相关的进阶问题,例如如何完全自定义 Tip 视图(不使用 TipView 和 popoverTip)、如何在 UIKit 中使用 TipKit,以及 TipKit 如何在不同的应用程序之间共享数据。最后,我们将尝试解答一些与 TipKit 相关的疑惑。

如果你对 TipKit 框架还不太了解,请先阅读 掌握 TipKit:基础 这篇文章。

近期推荐

杭州第4届亚残运会刚刚闭幕。残疾选手们在赛场上顽强拼搏的身影深深打动人心,他们坚毅的精神和顽强的斗志令人肃然起敬。作为科技企业的典范,苹果历来高度重视残障人士的使用体验。他们开发了大量辅助功能和开发框架,帮助开发者打造更贴心、更可访问的产品,持续为残障人群创建无障碍的科技生活。

A Comprehensive Guide to App Accessibility

Frank L

这是一篇全面介绍移动应用无障碍性设计的指南文章。作者详细阐述了无障碍性的概念、相关规定以及开发无障碍应用对用户、企业和开发者的重要意义。文章还提供了许多制作无障碍应用的实用建议,并通过健康、聊天和游戏应用的案例说明了无障碍性设计的实践。作者强调无障碍性是移动应用开发中的重要组成部分,也是确保技术服务于所有人的必要条件。这篇指南对希望开发无障碍和包容性应用的开发者具有重要的参考价值。

Preparing your App for VoiceOver: use Accessibility Label

Pasquale Vittorosi and Domenico De Luca

这篇文章总结了为应用程序准备 VoiceOver 功能的步骤,并强调了为视力有障碍的用户提供良好的可访问性体验的重要性。文章还提供了一些在 SwiftUI 和 UIKit 中使用辅助标签的示例,以帮助读者更好地理解如何实施这些标签。

用 Core Bluetooth 估计距离

堤@SansanJapan

NameDrop 是 iOS 17 中的众多亮点功能之一。使用 NameDrop,你可以轻松高效地与刚认识的人分享你的联络资料。在 NameDrop 发布之前,SansanJapan 也在开发类似的产品。本文探讨了使用 Bluetooth Low Energy(BLE)进行距离估计的基本理论、实现方法、存在的问题及解决方案。对于需要在 iOS 平台上利用 BLE 实现距离测量或室内定位的开发者,具有很高的参考价值。

Swift on Server Tour

Kevinzhow

Swift on Server 是指在服务器端使用 Swift 编程语言的技术。通过使用 Swift on Server,可以构建高性能、可扩展的应用程序。作者将以一个 Micro Blog Server 为示例,撰写了一系列文章,与读者一起探索 Swift on Server 的世界。这个系列主要面向初学者,除了功能实现,还会涉及许多相关概念。全系列共计十一篇文章,目前已更新至第六篇

Introduction to Shaders in SwiftUI: Wave Effect

João Gabriel

在最新版本中,SwiftUI 提供了与 Metal Shader 的深度集成,使开发者能够以卓越的性能操纵颜色、形状等。本文详细介绍了如何在 SwiftUI 中使用 Metal Shader 实现波浪动画效果。全文内容细致易懂,分享了使用 SwiftUI 和 Metal shader 开发动画效果的经验,对需要了解这方面知识的开发者非常有帮助。

如何使用 PHPicker 在 iOS 系统无授权下获取资源

狐友靳凯@搜狐

PHPicker 是 iOS14 开始引入的新组件。它允许无需用户授权即可访问照片库的所有资源。本文详细介绍了如何正确使用 PHPicker 访问用户选择的部分照片资源。其中的关键点是无需事先获取授权,而是通过 NSItemProvider 处理多媒体资源。这种方式更符合系统设计初衷并提高了用户体验。

THANK YOU

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

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

相关推荐
今天啥也没干12 小时前
使用 Sparkle 实现 macOS 应用自定义更新弹窗
前端·javascript·swift
yngsqq16 小时前
037集——JoinEntities连接多段线polyline和圆弧arc(CAD—C#二次开发入门)
开发语言·c#·swift
_黎明18 小时前
【Swift】字符串和字符
开发语言·ios·swift
RickeyBoy2 天前
基于 Swift 从零到一开发贪吃蛇游戏(四)
swift
Swift社区4 天前
LeetCode - #138 随机链表的复制
leetcode·ios·swift
iOS阿玮5 天前
Appstore的产品突然被下架,还是4.3(a)?
swift·apple
yujunlong39195 天前
flutter pigeon gomobile 插件中使用go工具类
flutter·golang·kotlin·swift
多彩电脑5 天前
Swift的可选绑定(Optional binding)
开发语言·ios·swift
hxx2215 天前
ios swift开发--ios远程推送通知配置
ios·swift
#摩斯先生5 天前
Swift从0开始学习 函数和闭包 day2
ios·xcode·swift