Learn Android MVVM architecture components with kotlin

First you need to individually understand why to use Kotlin, MVVM, Dagger, RxJava, Retrofit.

MVVM and Kotlin:

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

RxJava and RxAndroid:

RxAndroid is an extension to RxJava(Used for handling threads and asynchronous tasks), for more details check following links: Difference between RxJava and 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 and room with kotlin:

Room is a database layer on top of an SQLite database which used to remove boilter plate while fetching data from local sqlite database, use following links: https://codelabs.developers.google.com/codelabs/android-room-with-a-view-kotlin/#0

After understanding this components(Kotlin, MVVM, Dagger, RxJava and RxAndroid, Retrofit, LiveData) individually then you need to do all this things in single project, use following link:

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


As a jr. android developer, i was thinking like you but i choose a route like :

  • Learn MVVM with ViewModel(AAC),LiveData,Observable pattern.
  • Make your async and multi threading processes with Coroutines.
  • Make your Dependency Injection with Koin.

(If you want you can see how to mix them. Koin will be added soon. https://github.com/furkanaskin/CoinStalker)

Future?

Dagger 2, maybe Rxjava etc..