Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >肘子的 Swift 周报 #060|Older or Outer?我开始怀念非智能时代

肘子的 Swift 周报 #060|Older or Outer?我开始怀念非智能时代

作者头像
东坡肘子
发布于 2024-12-05 04:30:16
发布于 2024-12-05 04:30:16
1330
举报

欢迎访问 weekly.fatbobman.com[1]订阅本周报的中英文电子邮件版本。你也可以直接访问我的网站 肘子的 Swift 记事本[2]更多的周报内容。

肘子的话

Older or Outer?我开始怀念非智能时代

上周六,家里客厅的一个双控开关突然失灵了。这本是司空见惯的小故障,但对我而言,却别有一番意味。这是我 18 年前安装的众多智能开关中最后一个尚能正常工作的,它的“退役”,标志着传统智能设备在我生活中的全面落幕。

18 年前,“智能家电”还只是一个模糊的概念,智能开关也没有统一标准可言。作为当时的科技发烧友,我购买了数十个施耐德 ULTI 系列的开关和控制器。记得刚安装完成的那几个月,我沉浸在用遥控器调节灯光氛围的新奇中,热衷于向来访的朋友展示这“未来感”十足的智能生活场景。然而,这份热情也仅維持了短暂的几个月。并非智能设备不够出色,而是我渐渐意识到,即便不依赖它们,生活依然可以丰富多彩,人工近距离操作也并不会造成实质性的不便。

如今,“智能”已然成为家用电器的标配词汇。冰箱、电视、空调、洗衣机、热水器,近几年购入的电器几乎无一例外地标榜着“智能”和“联网”功能。我能理解并接受某些设备的智能化需求,但当连抽油烟机、燃气灶这类厨房设备都开始声称具备联网功能时,我不得不怀疑这种智能的必要性。除了极个别产品,我并未将家中所有智能产品都纳入 App 控制,因为内心始终认为:真的有这个必要吗?“智能”当真如此重要?已然成为生活的刚性需求了吗?

过度“智能化”的困扰同样延伸到为我正在为太太更换座驾这件事上。智能驾驶、超大屏幕、炫目的交互方式,已然成为当下车企竞相追逐的研发方向,且这股风潮也迅速侵蚀着传统车企的设计理念。如今,要找到一款保留足够实体按键、屏幕尺寸克制、提供契合人体生理感受驾驶体验的车型,正变得越来越困难。我不无担忧:再过几年,市场上或许就再难觅到不那么“智能”的汽车了。

我绝非技术保守主义者,依然是一个乐于学习、善于接纳新事物的人。然而,我愈发清晰地感受到:当前产品正以一种愈发明显的趋势过度“智能化”。尽管这更像是商业营销的噱头,但长此以往,厂商很可能会逐渐忘记在产品核心功能上下功夫,转而过分热衷于华而不实的表面文章。每每察觉到这种趋势,我就不由自主地怀念起非智能时代的产品:单纯且稳定,本真且踏实。

无论个人意愿与否,人类或许已不可避免地走向一个全面智能的时代。既然如此,我们更应该为消费者保留更多的选择空间,为那些不愿被过度智能化包围的人,提供一些保留传统操作方式、将智能功能巧妙隐藏的产品。技术的发展应该尊重使用者的多元需求,而非单方面地强制推进。

前一期内容全部周报列表

原创

有意为之还是技术缺陷?SwiftUI 多层导航中的 onChange 异常[3]

Fatbobman(东坡肘子)[4]

SwiftUI 提供的onChange修饰器,使开发者能够在视图中监听特定值的变化,并在值发生改变时执行相应的操作。直觉上,只要某个视图位于当前可见的视图树分支中( 活动中 ),在观察的值发生变化时,对应的闭包就应该被触发。但在某些特定的导航场景下,onChange修饰器似乎会“选择性失聪”,明明观察的值发生了变化,却诡异地保持沉默。这究竟是苹果精心设计的特性,还是一个隐藏已久的代码缺陷?本文将揭示这一现象并对开发者给予必要的提醒。

本文发表后,我陆续收到开发者的反馈,指出在不同场景下也遇到了 onChange失效的情况。这进一步表明,这可能是一个长期存在且未被充分关注的 Bug。

近期推荐

在 Mac Catalyst 应用中使用 AppKit (Using AppKit in Your Mac Catalyst App)[5]

Seb Vidal[6]

虽然苹果在最近的 SwiftUI 版本中显著提升了 macOS 的原生功能,但许多开发者仍选择通过 Catalyst 将他们的应用快速迁移到 macOS 平台。Catalyst 确实大大简化了适配工作,但它也存在一个显而易见的局限:无法直接使用一些 Catalyst 无法转换的 AppKit 组件。在本文中,Seb Vidal 展示了如何利用私有的_UINSView和 AppKit 桥接机制,在 UIKit 应用中灵活引入原生的 AppKit 组件,从而弥补 Catalyst 的不足,并进一步扩展应用功能。

调用隐藏的 Swift 函数 (Calling Hidden Swift Functions)[7]

Noah Martin[8]

@_spi是 Swift 中一个功能强大却鲜为人知的属性。简单来说,它赋予了方法“选择性隐藏”的能力,使得这些方法无法通过公开 API 使用,但在了解其方法签名的情况下,仍可通过特定方式引入并调用。苹果在其多个官方框架(如 SwiftUI)中广泛使用此功能,以限制某些功能仅供内部或特定模块使用。在这篇文章中,Noah Martin 深入探讨了如何调用 Swift 框架中隐藏的函数,并详细展示了突破苹果框架限制、使用未公开的系统编程接口(SPI)的多种方法。这不仅揭示了 SPI 的运作机制,也为开发者提供了扩展框架功能的新思路。

EmergeTools 在构建 SnapshotPreviews[9]时使用了该技巧,成功调用了 SwiftUI 框架中未公开的将预览渲染为图片的功能。

使用自然语言框架 (Working with Natural Language Framework)[10]

Artem Novichkov[11]

苹果的Natural Language[12]框架为实时处理自然语言提供了强大的工具。在本文中,Artem Novichkov 展示了 NL 框架的多种实际应用,包括:

  • 基于语义的文本搜索:通过NLEmbedding实现语义匹配,提升搜索功能的智能化水平。
  • 情感倾向分析:利用NLTagger评估文本的情感得分,区分正面、负面或中立的情绪。
  • 动态背景渐变:结合情感分数,使用 iOS 的 MeshGradient 技术创建实时更新的视觉效果。

macOS 编程技巧:线程管理 (macOS Tips for Programmers: Threading)[13]

Luna Razzaghipour[14]

在 macOS 平台上进行开发时,线程管理和优先级设置不仅关乎性能优化,更直接影响系统的能耗和用户体验。在本文中,Luna Razzaghipour 深入解析了 macOS 独特的线程管理机制,强调了 QoS 在任务优先级和资源调度中的核心作用。Luna 指出,通过正确理解 QoS 类别并广泛采用 Dispatch 框架,开发者可以充分利用 macOS 的硬件特性,在保证应用性能的同时实现更高的能效。

开发者对话 #4:Matt Massicotte (Dev Conversations #4: Matt Massicotte)[15]

Natan Rolnik[16]andMatt Massicotte[17]

作为 Swift 并发模型领域的专家,Matt Massicotte 发表了多篇关于这一主题的文章,并亲自参与编写了Swift 6 迁移指南[18]。在本期由 Natan Rolnik 主持的访谈中,Matt 分享了他的丰富开发经历以及对 Swift 并发编程的深入见解。

🪜 调试 SwiftUI 布局:技巧与方法 (Debugging SwiftUI Layouts: Tips, Tricks, and Techniques)[19]

Wesley Matlock[20]

SwiftUI 虽然让构建 UI 变得轻松有趣,但调试布局问题却常常成为开发者的难点。Wesley Matlock 在本文中分享了一系列实用的调试技巧,帮助开发者快速定位和解决 SwiftUI 布局中的常见问题。Matlock 指出,调试 SwiftUI 布局不仅是解决问题的过程,更是深入理解 SwiftUI 布局系统的绝佳机会。通过巧妙利用视觉调试工具、Xcode 的调试功能以及布局分析技术,开发者可以更高效地优化布局,打造质量更高的应用界面。

活动

Advent of Code 2024[21]

Advent of Code 2024将于12 月 1 日至 12 月 25 日举行,每天发布一个全新的挑战,难度逐步递增。这是一个不可多得的机会,让你在年末的这段时间里通过动手实践提升算法能力,打磨编程技巧,同时享受解题带来的成就感。

Swift 社区热情邀请所有开发者参与这一年度活动。无论你是经验丰富的 Swift 专家,还是刚入门的初学者,Advent of Code 都能以其丰富有趣、充满挑战的题目激发你的创意,并带你深入探索 Swift 的广泛应用场景。同时,这也是一个绝佳的机会,让你与社区中的开发者交流心得、学习技巧、分享灵感。

如果你想参与,请访问Swift 社区的论坛帖子[22],了解详细的参与方式、相关讨论以及实用建议。不要错过这个在学习与挑战中度过节日的精彩机会!

如果你还没有尝试过在 Xcode 之外开发 Swift 项目,这次活动将是一个不错的契机。通过使用 Advent of Code Starter 模板[23],你可以体验在其他编辑器中开发 Swift 代码的乐趣,解锁更多可能性。

THANK YOU

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

参考资料

[1]

weekly.fatbobman.com:https://weekly.fatbobman.com

[2]

肘子的 Swift 记事本:https://fatbobman.com

[3]

有意为之还是技术缺陷?SwiftUI 多层导航中的 onChange 异常:https://t.ly/hwnGJ

[4]

Fatbobman(东坡肘子):https://x.com/fatbobman

[5]

在 Mac Catalyst 应用中使用 AppKit (Using AppKit in Your Mac Catalyst App):https://t.ly/EETxu

[6]

Seb Vidal:https://x.com/SebJVidal

[7]

调用隐藏的 Swift 函数 (Calling Hidden Swift Functions):https://t.ly/VF0G2

[8]

Noah Martin:https://x.com/sond813

[9]

SnapshotPreviews:https://github.com/EmergeTools/SnapshotPreviews

[10]

使用自然语言框架 (Working with Natural Language Framework):https://t.ly/MMWZ3

[11]

Artem Novichkov:https://x.com/iosartem

[12]

Natural Language:https://developer.apple.com/documentation/naturallanguage/

[13]

macOS 编程技巧:线程管理 (macOS Tips for Programmers: Threading):https://t.ly/-GJSa

[14]

Luna Razzaghipour:https://github.com/lunacookies

[15]

开发者对话 #4:Matt Massicotte (Dev Conversations #4: Matt Massicotte):https://t.ly/6AYQR

[16]

Natan Rolnik:https://x.com/SwiftToolkit

[17]

Matt Massicotte:https://x.com/mattie

[18]

Swift 6 迁移指南:https://www.swift.org/migration/documentation/migrationguide/

[19]

🪜 调试 SwiftUI 布局:技巧与方法 (Debugging SwiftUI Layouts: Tips, Tricks, and Techniques):https://t.ly/7PSQ4

[20]

Wesley Matlock:https://medium.com/@wesleymatlock/about

[21]

Advent of Code 2024:https://forums.swift.org/t/advent-of-code-2024/76301

[22]

Swift 社区的论坛帖子:https://forums.swift.org/t/advent-of-code-2024/76301

[23]

Advent of Code Starter 模板:https://github.com/swiftlang/swift-aoc-starter-example

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-12-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 肘子的Swift记事本 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
在平淡中等待 WWDC 2025 | 肘子的 Swift 周报 #084
不知不觉,距离 WWDC 2025 开始只有 20 天了。在过去的几年中,每当此时我都会写几篇文章畅想 WWDC 上会带来的新功能和我期待的一些变化。
东坡肘子
2025/05/20
580
在平淡中等待 WWDC 2025 | 肘子的 Swift 周报 #084
肘子的 Swift 周报 #036 | WWDC 2024 观后感
WWDC 2024 已圆满落幕。在这一周里,苹果向开发者们展示了一系列对未来将产生深远意义的新特性和功能。我将对几个感触较深的方面分享一下看法和感受,回顾这次 WWDC 的亮点。
东坡肘子
2024/06/25
2010
肘子的 Swift 周报 #036 | WWDC 2024 观后感
肘子的 Swift 周报 #038 | 更好还是更便宜?
近日,苹果正式将 Apple Vision Pro (AVP) 推广到更多国家的市场。考虑到 AVP 的独特性,尤其需要为戴眼镜用户提供定制的镜片,消费者能够亲身体验这款产品无疑会增进对其的了解,有望带动销量。然而,若价格、佩戴舒适度和生态系统等核心问题未能得到显著改善,仅仅扩大销售范围恐难以带来令人振奋的市场表现。
东坡肘子
2024/07/08
4560
肘子的 Swift 周报 #038 | 更好还是更便宜?
视角转换:从机场之争看开发者的双重身份 | 肘子的 Swift 周报 #065
周末与几位朋友聚会,其中一位正在参与新机场的建设管理工作。席间,大家就新旧机场的去留展开了热烈讨论。
东坡肘子
2025/01/07
1920
视角转换:从机场之争看开发者的双重身份 |  肘子的 Swift 周报 #065
肘子的 Swift 周报 #043| 记忆归档和唤醒
上个周末,我参加了高中同学的聚会。尽管与不少同学仍保持着较为密切的联系,但也有些许同学自毕业后已经数十载未曾谋面。席间,众多同学沉浸在对往昔校园生活的回忆中,墙上的投影播放着由同学精心制作的在校时光旧照片剪辑。
东坡肘子
2024/08/06
1980
肘子的 Swift 周报 #043| 记忆归档和唤醒
肘子的 Swift 周报 #054| 安全、便利与隐私
在数字浪潮的冲击下,安全、便利与隐私始终是一个永恒的命题。据 The Register 报道[3],苹果最新提案[4]建议大幅缩短 SSL/TLS 证书的有效期:从现行的 398 天开始,预计 2025 年缩短至 200 天,2026 年减至 100 天,到 2027 年最终定为 45 天。
东坡肘子
2024/11/23
1390
肘子的 Swift 周报 #054| 安全、便利与隐私
肘子的 Swift 周报 #061|离开手机的两个小时
上周,我的一件物品需要修理,商家告诉我大约需要两个小时,于是我带上笔记本开车前往一家购物中心。直到将物品交给商家时,我才意识到犯了一个错误:忘记带手机了。这个看似不大的疏忽,在接下来的两个小时里给我带来了一连串的小麻烦。
东坡肘子
2024/12/10
920
肘子的 Swift 周报 #061|离开手机的两个小时
肘子的 Swift 周报 #050| 你的 App 被新系统打败了吗?
从 beta 7 开始,我的所有苹果设备都升级到了今年的新系统。用了一段时间后,我感觉今年的更新似乎比过去两年要稳定得多。但事实证明,这只是我个人的错觉。
东坡肘子
2024/11/23
4040
肘子的 Swift 周报 #050| 你的 App 被新系统打败了吗?
肘子的 Swift 周报 #046| 无警告编译并非 Swift 6 的初衷
最近,我着手重构自己的一个 App,其中 Swift 6 的完整支持成为了一个重要考量。在这个过程中,我首先尝试让自己构建的第三方库在 Swift 6 模式下实现完美编译。
东坡肘子
2024/08/27
3000
肘子的 Swift 周报 #046| 无警告编译并非 Swift 6 的初衷
肘子的 Swift 周报 #057| 超宽虚拟屏很棒,但我们期待更多
visionOS 2.2 测试版本的发布,终于为 Apple Vision Pro 带来了期待已久的“宽”和“超宽”虚拟屏幕模式。在超宽模式下,使用者眼前会呈现出一个可以超越物理视野限制的庞大显示空间。尽管 Apple Vision Pro 的硬件分辨率有其局限性,但得益于焦点渲染(Foveated Rendering)技术的加持,虚拟屏幕不仅较此前更为清晰,更能带来堪比 8K 显示器的视觉体验。
东坡肘子
2024/11/23
1110
肘子的 Swift 周报 #057| 超宽虚拟屏很棒,但我们期待更多
肘子的 Swift 周报 #052| 回顾初心,写在周报创刊一周年
Swift Package Index[5] 的两位创建者 Dave Verwer 和 Sven A. Schmidt 近期接受了 Natan Rolnik 的访谈。Dave Verwer 同时也是苹果生态中最受欢迎的开发者周报—— iOS Dev Weekly[6] 的编者。在交流中,二位详细分享了 Swift Package Index 项目的开发历程、技术架构及背后的设计理念。访谈深入剖析了 SPI 项目的技术细节与演进过程,并强调了开源社区对项目发展的重要意义,以及服务器端 Swift 技术在实际项目中的应用与实践经验。
东坡肘子
2024/11/23
1530
肘子的 Swift 周报 #052| 回顾初心,写在周报创刊一周年
肘子的 Swift 周报 #056| Pixelmator 并购背后的思考
近日,Pixelmator 官方宣布即将加入苹果,目前正在等待监管部门的最终审批。他们承诺,旗下主打产品——Pixelmator Pro、iOS 版 Pixelmator 以及 Photomator 在短期内将不会发生重大变化。
东坡肘子
2024/11/23
920
肘子的 Swift 周报 #056| Pixelmator 并购背后的思考
肘子的 Swift 周报 #034 | WWDC 2024,AI 并非全部
苹果一直是 AI 领域的务实参与者,提供了卓越的设备端 AI 功能。然而,自从去年生成式 AI 的兴起,投资者、消费者、开发者都渴望苹果能够提供更加直观和感知丰富的 AI 技术。鉴于当前市场的需求,可以预见,在今年的 WWDC 2024 上,与 AI 相关的内容将占据极其重要的地位。
东坡肘子
2024/06/13
1800
肘子的 Swift 周报 #034 | WWDC 2024,AI 并非全部
肘子的 Swift 周报 #028 |用 iPhone 感受像素的游戏的快乐!
苹果公司最近更新了应用商店审核指南[3],现在允许模拟器应用进入 App Store。就在几天前,名为 Delta 的模拟器应用登陆了应用商店。Delta 是一款为 iOS 设计的综合模拟器,支持多种任天堂掌机游戏。这款应用其实很早以前就已经开发完成,但之前由于政策限制,只能以非商店形式提供给用户。
东坡肘子
2024/04/25
1490
肘子的 Swift 周报 #028 |用 iPhone 感受像素的游戏的快乐!
肘子的 Swift 周报 #051| Xcode 并不孤单
在 JetBrains 宣布停止更新 AppCode 后,不少开发者都担心从此 Xcode 缺少了竞争对手从而失去了成长的动力,并且也丧失了用来开发 Swift 项目的其他选择。然而,随着 Swift Server Work Group 为 VSCode 提供的 插件[3] 功能不断完善,以及 Cursor 这样的 AI 编辑器的出现,Swift 开发工具的生态正在悄然发生变化。现在,在 VSCode 或 Cursor 上开发 Swift 项目不仅变得越来越容易,体验也越来越好。
东坡肘子
2024/11/23
2220
肘子的 Swift 周报 #051| Xcode 并不孤单
肘子的 Swift 周报 #045| 我们需要更多的《悟空》
《黑神话:悟空》[3]是由中国游戏工作室 Game Science 历经多年开发的一款动作角色扮演游戏,灵感源自中国古典小说《西游记》。它于 8 月 20 日(本期周报发表的同一天)在多个平台正式发布。
东坡肘子
2024/08/27
1520
肘子的 Swift 周报 #045| 我们需要更多的《悟空》
别让 Vibe Coding 阻碍了你的技术成长 | 肘子的 Swift 周报 #082
几天前,一位之前高度赞扬并全身投入 Vibe Coding 的好友发表了一篇推文,表达了他近期基于 AI 编程的挫败感:
东坡肘子
2025/05/13
520
别让 Vibe Coding 阻碍了你的技术成长 | 肘子的 Swift 周报 #082
肘子的 Swift 周报 #059| “为你推荐”还是“为了流量推荐”
“为什么总是推荐这些令人反感的文章或短视频?要如何才能屏蔽掉它们?”这是我父亲最近经常提起的问题。尽管我教给了他一些技术手段(如选择减少类似推荐、屏蔽特定账号),但现实是:一旦用户“画像”形成,想要改变这些推荐内容,往往需要相当长的时间才能见效。这凸显了一个残酷的真相:在算法推荐的世界里,用户的主动选择权重远低于想象,平台对流量的追逐才是根本驱动力。在这个逻辑下,即便是负面情绪带来的流量也是流量,“黑粉”也是“大数据”算法中的重要一环。
东坡肘子
2024/11/26
2040
肘子的 Swift 周报 #059| “为你推荐”还是“为了流量推荐”
将 AI 整合至日常工具链 | 肘子的 Swift 周报 #066
大语言模型已然成为我日常工作和生活中不可或缺的得力助手。目前,我主要通过对话方式与它互动。虽然随着模型能力的提升,这种交流方式越发流畅自然,但当各类需求混杂在同一会话中时,效率往往难以达到理想状态。为此,我在过去几周开始尝试运用提示词来定制一些面向特定任务的专用会话。
东坡肘子
2025/01/14
1390
将 AI 整合至日常工具链 | 肘子的 Swift 周报 #066
注册 WWDC 2025 的 Group Labs 了没? | 肘子的 Swift 周报 #085
三个月前,在与苹果某部门的交流中,我重申了对苹果继续举办 Lounges 或 Ask Apple 这类群体问答活动的期待。令人欣喜的是,WWDC 2025 中,全新的群体互动项目以 Group Labs 的形式回归了。
东坡肘子
2025/05/27
340
注册 WWDC 2025 的 Group Labs 了没? | 肘子的 Swift 周报 #085
推荐阅读
相关推荐
在平淡中等待 WWDC 2025 | 肘子的 Swift 周报 #084
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档