通过实际示例学习 Android 中的 Kotlin Flow
关于本项目:
- 该项目适合想要开始学习 Kotlin Flow 的人。
- 我尝试添加了我们在 Android 项目中经常实现的示例。
关于我
你好,我是 Amit Shekhar,Outcome School 的联合创始人 • IIT 2010-14 届 • 我曾教导和指导过许多开发者,他们的努力使他们获得了高薪技术工作,帮助许多科技公司解决了他们独特的问题,并创建了许多被顶级公司使用的开源库。我热衷于通过开源、博客和视频分享知识。
你可以在以下平台与我联系:
从本项目学习 Kotlin Flow 的步骤
首先,我们需要学习相关概念。
我写了一系列关于 Kotlin 中的 Flow API 的博客:
- 掌握 Kotlin 中的 Flow API
- 在 Kotlin 中使用 Flow 构建器创建 Flow
- Kotlin Flow 中的终端操作符
- 冷流 vs 热流
- StateFlow 和 SharedFlow
- 使用 Kotlin Flow 进行并行长时间运行任务
- Kotlin Flow 中的重试操作符
- Retrofit 与 Kotlin Flow 的结合
- Room 数据库与 Kotlin Flow 的结合
- Kotlin Flow Zip 操作符用于并行多个网络调用
- 使用 Kotlin Flow 操作符实现即时搜索
- callbackFlow - 在 Kotlin 中将回调转换为 Flow API
- Kotlin Flow 中的异常处理
- 使用 Kotlin Flow 和 StateFlow 对 ViewModel 进行单元测试
然后,只需克隆、构建、运行项目,并开始通过示例学习 Kotlin Flow。
你将从这个学习 Kotlin Flow 的项目中学到以下内容:
- 如何在 Android 项目中使用 Kotlin Flow?
- 使用 Kotlin Flow 在后台执行简单任务。
- 使用 Kotlin Flow 串行执行任务。
- 使用 Kotlin Flow 并行执行任务。博客
- 使用 Kotlin Flow 并行进行两个网络调用。
- 使用 filter、map、reduce、flatMapConcat、zip 等操作符。
- Kotlin Flow 中的异常处理
- 如何在 Flow 中使用 onCompletion?
- 使用 Flow 中的 retry 操作符重试任务。博客:Kotlin Flow 中的重试操作符
- 在 Flow 中使用指数退避重试任务。博客:Kotlin Flow 中的重试操作符
- 将 Kotlin Flow 与 Retrofit 结合使用。博客
- 将 Kotlin Flow 与 Room 数据库结合使用。博客
- 将 Kotlin Flow 与各种第三方库结合使用。
- 使用 Kotlin Flow 并行进行两个网络调用。
- 使用 Kotlin Flow 串行执行任务。
- 为使用 Kotlin Flow 的 ViewModel 编写单元测试。博客:使用 Kotlin Flow 和 StateFlow 对 ViewModel 进行单元测试
Android 开发中的 Kotlin Flow 示例:Activity 和 ViewModel
-
单个网络调用: 学习如何使用 Kotlin Flow 进行网络调用。这是 Android 应用开发中一个非常简单的用例。 博客:Retrofit 与 Kotlin Flow 的结合
-
串行网络调用: 学习如何使用 Kotlin Flow 进行串行网络调用。当你想要进行依赖于另一个网络调用的网络调用时,这很有用。
-
并行网络调用: 学习如何使用 Kotlin Flow 进行并行网络调用。当你想要进行彼此独立的并行网络调用时,这很有用。
-
Room 数据库操作: 学习如何使用 Kotlin Flow 在数据库中获取或插入实体。当你在 Android 应用中使用 Room 数据库时,这很有用。 博客:Room 数据库与 Kotlin Flow 的结合
-
长时间运行任务: 学习如何使用 Kotlin Flow 运行长时间任务。如果你想在后台线程中使用 Kotlin Flow 执行任何任务,这很有用。
-
两个长时间运行任务: 学习如何使用 Kotlin Flow 并行运行两个长时间任务。博客:使用 Kotlin Flow 进行并行长时间运行任务
-
Catch 错误处理: 学习如何使用 Catch 在 Kotlin Flow 中处理错误。
-
EmitAll 错误处理: 学习如何使用 emitAll 在 Kotlin Flow 中处理错误。
-
完成:
-
Reduce:
-
Map:
-
Filter:
-
搜索功能: 使用 Kotlin Flow 操作符实现搜索 - Debounce、Filter、DistinctUntilChanged、FlatMapLatest。
-
重试: 博客:Kotlin Flow 中的重试操作符
-
RetryWhen: 博客:Kotlin Flow 中的重试操作符
-
指数退避重试: 博客:Kotlin Flow 中的重试操作符
-
单元测试: 学习如何为使用 Kotlin Flow 的 ViewModel 编写单元测试。
如果这个项目以任何方式帮助到你,请通过给这个项目加星 :star: 来表达你的喜爱 :heart: :v:
许可证
Copyright (C) 2024 Amit Shekhar
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
为 Learn Kotlin Flow 做贡献
只需提交拉取请求。你就加入了!
谢谢
Amit Shekhar
[Outcome School](https://outcomesch