前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >肘子的 Swift 周报 #059| “为你推荐”还是“为了流量推荐”

肘子的 Swift 周报 #059| “为你推荐”还是“为了流量推荐”

作者头像
东坡肘子
发布2024-11-26 16:17:20
发布2024-11-26 16:17:20
720
举报

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

肘子的话

“为你推荐”还是“为了流量推荐”

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

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

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

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

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

前一期内容全部周报列表

原创

在 SwiftData 和 Core Data 中用 Transaction 代替 Save[3]

Fatbobman(东坡肘子)[4]

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

近期推荐

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

Mohammad Azam[6]

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

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

Claudius Chuxuan Ma[8]

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

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

Weichao Deng[10]

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

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

Aryaman Sharda[12]

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

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

Pasquale Vittoriosi[14]

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

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

Itsuki[16]

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

THANK YOU

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

参考资料

[1]

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

[2]

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

[3]

在 SwiftData 和 Core Data 中用 Transaction 代替 Save:https://fatbobman.com/zh/posts/using-transactions-instead-of-save-in-swiftdata-and-core-data/?issue=059&utm_source=fatbobman%20weekly%20issue%2059&utm_medium=email&utm_campaign=fatbobman%20weekly

[4]

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

[5]

SwiftUI 环境的深度探索 (Deep Dive into Environment in SwiftUI):https://t.ly/Uml20

[6]

Mohammad Azam:https://x.com/azamsharp

[7]

分段的弹簧动效 & 静摩擦力:https://t.ly/E6WdT

[8]

Claudius Chuxuan Ma:https://x.com/10xDayDreamer

[9]

🪜 解决通过解锁的 Camera Control 启动时的意外终止问题 (Addressing Unexpected Terminations when launching from unlocked Camera Control):https://t.ly/8rEIg

[10]

Weichao Deng:https://x.com/JuniperPhoton

[11]

SwiftUI 中的基于时间的视图更新 (Time-Based View Updates in SwiftUI):https://t.ly/LzNfr

[12]

Aryaman Sharda:https://x.com/aryamansharda

[13]

SwiftUI 中交互式底部弹窗 (Exploring Interactive Bottom Sheets in SwiftUI):https://t.ly/tLp83

[14]

Pasquale Vittoriosi:https://x.com/pasqualevitt

[15]

🪜 从零开始学习 Layout Protocol (SwiftUI: Step 0 to Layout Protocol):https://t.ly/ECOI_

[16]

Itsuki:https://x.com/itsuki68391179

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 肘子的话
    • 原创
  • 在 SwiftData 和 Core Data 中用 Transaction 代替 Save[3]
    • 近期推荐
  • SwiftUI 环境的深度探索 (Deep Dive into Environment in SwiftUI)[5]
  • 分段的弹簧动效 & 静摩擦力[7]
  • 🪜 解决通过解锁的 Camera Control 启动时的意外终止问题 (Addressing Unexpected Terminations when launching from unlocked Camera Control)[9]
  • SwiftUI 中的基于时间的视图更新 (Time-Based View Updates in SwiftUI)[11]
  • SwiftUI 中交互式底部弹窗 (Exploring Interactive Bottom Sheets in SwiftUI)[13]
  • 🪜 从零开始学习 Layout Protocol (SwiftUI: Step 0 to Layout Protocol)[15]
  • THANK YOU
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档