# 59 : “为你推荐”还是“为了流量推荐”

发表于

Photo by Alexander Sinn on Unsplash

为您每周带来有关 Swift 和 SwiftUI 的精选资讯!

肘子的话

“为什么总是推荐这些令人反感的文章或短视频?要如何才能屏蔽掉它们?”这是我父亲最近经常提起的问题。尽管我教给了他一些技术手段(如选择减少类似推荐、屏蔽特定账号),但现实是:一旦用户“画像”形成,想要改变这些推荐内容,往往需要相当长的时间才能见效。这凸显了一个残酷的真相:在算法推荐的世界里,用户的主动选择权重远低于想象,平台对流量的追逐才是根本驱动力。在这个逻辑下,即便是负面情绪带来的流量也是流量,“黑粉”也是“大数据”算法中的重要一环。

我最早是在接近三十年前接触到“数据挖掘”这个概念。当时,我的一位朋友在玛氏食品做 IT 管理工作,他向我展示了数据挖掘在企业中的应用场景。每天,数百名员工以人工方式记录全国各大超市中产品的销售数据——包括种类、数量、陈列位置等信息。这些珍贵的数据经由传真、VPN 汇总,经过整夜运算,最终形成决策报表。那时的数据分析,目标明确而纯粹。

步入互联网时代,数据采集变得前所未有的便捷而肆无忌惮。用户在网络上的每一个足迹,都会被算法收集并用于画像。互联网公司巧妙地将数据挖掘包装成“大数据”概念,结合 AI、算法等炫目词汇,描绘出一幅“专属定制”的服务蓝图。然而,这种个性化服务的承诺,是否真正以用户需求为中心?

在我们诟病传统媒体的守旧与主观性的同时,是否也应看到它们的可贵之处:在编辑制度与版面、频道数量的限制下,内容筛选至少还保留着对时代道德感的基本尊重。而今,随着短视频时代的来临,算法取代了编辑,推荐标准从高于平均道德滑向尽量不被法律所惩罚。平台不再关注内容的价值导向,而是展现出对流量的赤裸裸追逐。

所谓的“为你推荐”,不过是一场精心设计的商业表演。其核心逻辑,是通过精密的流量算法,最大化平台利益,并自觉或不自觉地构建了一个信息茧房。“为了流量推荐”才是“为你推荐”的底层逻辑。

原创

在 SwiftData 和 Core Data 中用 Transaction 代替 Save

Fatbobman(东坡肘子)

在数据持久化操作中,确保数据的一致性和完整性至关重要。SwiftData 框架通过在 ModelContext 中引入 transaction 方法,为开发者提供了一种更优雅的方式来组织和管理数据操作。本文将探讨如何运用事务(Transaction)的概念在 SwiftData 和 Core Data 中构建更可靠、高效的持久化操作。

近期推荐

SwiftUI 环境的深度探索 (Deep Dive into Environment in SwiftUI)

Mohammad Azam

SwiftUI 通过 @Environment 及相关工具提供了一种强大且高效的全局状态管理方式。在这篇文章中,Mohammad Azam 深入解析了如何在视图层级中注入和访问全局状态,优化状态传播以减少性能开销,并利用这些特性简化复杂的视图层次结构。文章不仅涵盖了从传统 ObservableObject 到 Observation 框架的转变,还提供了模块化设计的实用建议,帮助开发者避免常见陷阱,并构建出更清晰、更可测试的 SwiftUI 应用架构。

分段的弹簧动效 & 静摩擦力

Claudius Chuxuan Ma

弹簧动画以其自然的连续性和速度感,为用户创造了直观且栩栩如生的交互体验。但要让数字世界的交互更贴近现实物理,还需对基础动画进行巧妙调整。Claudius Chuxuan Ma 在文章中通过几个弹簧动画视频片段及对应代码,展示了这些微调所带来的显著变化。从分段弹簧动效的实现到静摩擦力的模拟,作者探索了如何通过调整动画参数和物理特性,让交互更加真实、自然。

🪜 解决通过解锁的 Camera Control 启动时的意外终止问题 (Addressing Unexpected Terminations when launching from unlocked Camera Control)

Weichao Deng

Weichao Deng (JuniperPhoton) 在使用 iPhone 16 系列设备运行 iOS 18 时,发现了一个与 Camera Control 和 Capture Extension 功能相关的系统问题:针对扩展应用的终止机制意外作用于主应用,导致应用会被系统随机终止。在本文中,他详细分享了问题的复现路径、日志分析,以及临时解决方案。作者认为这是一个系统设计缺陷,并呼吁其他开发者通过反馈渠道共同上报此问题,以引起苹果的重视。

SwiftUI 中的基于时间的视图更新 (Time-Based View Updates in SwiftUI)

Aryaman Sharda

SwiftUI 的 TimelineView 是一个构建基于时间更新视图的强大工具,适用于实时钟表、倒计时计时器和周期性数据可视化等场景。Aryaman Sharda 通过多个实用示例,详细展示了如何使用 TimelineView 的各种调度方式(如 .periodic.explicit.animation)来实现精准的时间控制。尽管 TimelineView 能满足许多时间驱动的需求,但 Sharda 指出其在事件驱动场景下的局限性,此时应优先考虑使用基于 ObservationCombine 的解决方案。

SwiftUI 中交互式底部弹窗 (Exploring Interactive Bottom Sheets in SwiftUI)

Pasquale Vittoriosi

自 iOS 16 起,SwiftUI 通过 presentationDetents 修饰器,为开发者提供了强大的工具来实现 Bottom Sheet(底部弹窗)。这种弹窗形式广泛应用于系统应用(如 Map、Find My 和 Stocks),提供灵活的交互体验。在本文中,Pasquale Vittoriosi 深入解析了 presentationDetents 的核心用法及其配套 API,让开发者可以灵活定义弹窗高度、拖动行为和交互方式,创建既功能丰富又能保持背景交互的自定义弹窗界面。

🪜 从零开始学习 Layout Protocol (SwiftUI: Step 0 to Layout Protocol)

Itsuki

SwiftUI 的 Layout Protocol 提供了一个强大的接口,允许开发者自定义布局容器,精确控制子视图的排列方式。通过实现 sizeThatFitsplaceSubviews 方法,开发者可以定义容器的尺寸和子视图的布局。Itsuki 通过构建一个模仿 VStack 的自定义布局容器,详细介绍了 Layout Protocol 的基本用法及其关键特性。

每周一晚,与全球开发者同步,掌握 Swift & SwiftUI 最新动向
可随时退订,干净无 spam