使用 kotlin 学习 Android MVVM 架构组件

Learn Android MVVM architecture components with kotlin

在搜索了 android 架构组件后 我意识到 MVVM 在某些方面优于其他架构,所以我开始学习 MVVM,我正在使用 Kotlin 语言,但问题是当我搜索教程开始学习时,我发现许多组件,如 RxJava、RxAndroid、Dagger2、Room, Lifecycle 等 但他们没有说明为什么使用它们以及为什么选择某些特定组件。我将向您展示一些示例:

1- Android MVVM with Dagger2, Retrofit, RxJava

2- Android MVVM with Dagger2, Retrofit, RxAndroid

3- Android app with MVVM dagger2 RxJava Livedata and Room

我的问题是:

1- 我应该如何决定选择其中一些组件并使用它们?

2- 我怎么知道我需要一起使用其中的一些(例如 Livedata 和 RxJava)?

这让我很困惑,我不知道如何开始。

作为一名小学生。 android 开发者,我的想法和你一样,但我选择了这样的路线:

  • 使用 ViewModel(AAC)、LiveData、Observable 模式学习 MVVM。
  • 使用协程创建异步和多线程进程。
  • 使用 Koin 进行依赖注入。

(如果你喜欢可以看看如何混合它们。很快就会添加Koin。https://github.com/furkanaskin/CoinStalker)

未来?

Dagger 2,也许是 Rxjava 等。

首先你需要单独了解为什么要使用Kotlin、MVVM、Dagger、RxJava、Retrofit。

MVVM 和 Kotlin:

https://medium.com/@zhangqichuan/android-development-with-mvvm-and-kotlin-9598c3623ce1

RxJava 和 RxAndroid:

RxAndroid 是 RxJava 的扩展(用于处理线程和异步任务),有关详细信息,请查看以下 links: https://www.quora.com/What-is-the-difference-between-Retrofit-and-RxJava-RxAndroid

改装:

https://medium.com/@elye.project/kotlin-and-retrofit-2-tutorial-with-working-codes-333a4422a890

LiveData 和 room with kotlin:

Room 是 SQLite 数据库之上的数据库层,用于在从本地 sqlite 数据库获取数据时删除样板,使用以下 links: https://codelabs.developers.google.com/codelabs/android-room-with-a-view-kotlin/#0

在分别理解这些组件(Kotlin、MVVM、Dagger、RxJava 和 RxAndroid、Retrofit、LiveData)之后,您需要在单个项目中完成所有这些事情,使用以下 link:

https://github.com/egek92/Kotlin-MVVM-LiveData-Room

如果您了解核心 Android 基础知识并且至少完成了 1 或 2 个项目,那么您可以跳到这里,https://android.jlelse.eu/why-to-choose-mvvm-over-mvp-android-architecture-33c0f2de5516

也许您需要的是从基础开始。 关于 Android 架构,有几个 google 官方代码实验室。

您可以先查看此代码实验室,然后再查看其他代码实验室。

https://codelabs.developers.google.com/codelabs/kotlin-android-training-view-model

Simple Note App 是使用 MVVM 架构在 Kotlin 中编写的

https://github.com/prakashshuklahub/Simple-Notes-Kotlin-App

应用中使用的架构组件如下

  1. 实时数据
  2. 房间:
  3. 视图模型:
  4. 存储库:

您可以使用

检查GitHub项目
  1. Kotlin
  2. MVVM
  3. 喷气背包
  4. Retrofit2

这是完整的源代码 GitHUb Link: https://github.com/enamul95/kotlin_MVVM_Jetpack