使用Kotlin学习Android MVVM架构组件

14
在了解了关于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)?

这对我来说真的很困惑,不知道该如何入手。

2
请按照教程操作,直到您需要以一种异步请求的方式执行操作时,才考虑使用RxJava。在这种情况下,您需要使用Rx运算符来表达您想要的内容,而不是使用MediatorLiveData ;) - EpicPandaForce
6个回答

9

首先,您需要分别了解为什么要使用 Kotlin、MVVM、Dagger、RxJava 和 Retrofit。

MVVM 和 Kotlin:

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

RxJava 和 RxAndroid:

RxAndroid 是 RxJava 的扩展(用于处理线程和异步任务),有关更多详细信息,请查看以下链接: RxJava 与 RxAndroid 之间的区别是什么? https://www.quora.com/What-is-the-difference-between-Retrofit-and-RxJava-RxAndroid

Retrofit:

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

LiveData 和 Room 与 Kotlin:

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

在单个项目中完成所有这些组件(Kotlin、MVVM、Dagger、RxJava 和 RxAndroid、Retrofit、LiveData)的使用之后,请使用以下链接:

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


需要使用它们吗? - houman.sanati
不是必须的,但为了更好地构建代码结构和维护代码,这些东西被使用。因此,分别理解每个事物非常重要。 - Sushant Poman

3
作为一名初级的安卓开发者,我曾经有过和你一样的想法,但我选择了以下这条路线:
  • 学习使用MVVM架构与ViewModel(AAC)、LiveData和Observable模式。
  • 使用协程来处理异步和多线程过程。
  • 使用Koin进行依赖注入。

(如果您愿意,可以了解如何将它们混合使用。Koin将很快被添加。 https://github.com/furkanaskin/CoinStalker)

未来?

Dagger 2,也许还有RxJava等等。


2
请参考 https://overflow.buffer.com/2016/09/26/android-rethinking-package-structure/。 - EpicPandaForce

2

2

1

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接