稀有猿诉

十年磨一剑,历炼出锋芒,说话千百句,不如码二行。

Android ViewModel数据加载:基于Flow架构的最佳实践

本文译自「Android ViewModel Data Loading: Best Practices and Flow-Based Architecture」,原文链接https://funkymuse.dev/posts/properly-load-data/,由FunkyMuse于2025年8月29日。

Android 开发中的架构讨论经常引发激烈的争论——有时褒贬不一。撰写这些主题的文章并不容易,但这正是它的价值所在。

本文阐述了我对数据加载模式的独到见解,这些见解源于我的经验以及近期手术后的恢复(其中一次手术仍在进行中)。

不妨将此视为我在 2025 年对数据加载模式的理解和技能的概述。

我可能比其他人更晚加入这场讨论,但迟做总比不做好。

挑战:Android ViewModel 中常见的数据加载反模式

“大多数”Android 开发者使用 ViewModel 来管理 UI 状态,这些状态由视图(Fragment、Activity 或可组合组件)收集。为了显示有意义的内容,你需要从真实数据源加载数据,将其转换为视图状态,然后公开以供使用。

以前是 LiveData,现在是 Flow,它充当视图和 ViewModel 之间的粘合剂(大多数情况下)。有一些解决方案使用 molecule,但这超出了我们的讨论范围。

学会说不!让你彻底学会Kotlin Flow的取消机制

本文译自「Cancellable Flows in Kotlin Coroutines: The Complete Guide to Flow Cancellation Techniques」,原文链接https://proandroiddev.com/cancellable-flows-in-kotlin-coroutines-the-complete-guide-to-flow-cancellation-techniques-8988a85fc158,由Sahil Thakar发布于2025年7月21日。

译者按: 本文并不是Flow的基础教程,而是专门讲解如何取消flow的,适合对Flow有一定基础的同学。如果对Flow还不够熟悉,可以先行阅读一下之前的文章: