Después de buscar sobre los componentes de la arquitectura de Android, me di cuenta de que MVVM es mejor que otras arquitecturas en algunos puntos, así que comencé a aprender MVVM y estoy usando el lenguaje Kotlin, pero el problema es que cuando busco tutoriales para comenzar a aprender, encontré muchos componentes como RxJava, RxAndroid, Dagger2, Room, Lifecycle, etc. , pero no dicen por qué los usan y por qué eligen algunos componentes específicos. Te mostraré algunos ejemplos:
1- Android MVVM con Dagger2, actualización, RxJava
2-Android MVVM con Dagger2, Retrofit, RxAndroid
3- Aplicación de Android con MVVM dagger2 RxJava Livedata y Room
Mis preguntas son:
1- ¿Cómo debo decidir elegir algunos de estos componentes y trabajar con ellos?
2- ¿Cómo debo saber que necesito usar algunos de ellos juntos (por ejemplo, Livedata y RxJava)?
Esto es realmente confuso para mí y no sé cómo empezar.
Primero debe comprender individualmente por qué usar Kotlin, MVVM, Dagger, RxJava, Retrofit.
MVVM y Kotlin:
https://medium.com/@zhangqichuan/desarrollo-de-android-con-mvvm-y-kotlin-9598c3623ce1
RxJava y RxAndroid:
RxAndroid es una extensión de RxJava (utilizado para manejar subprocesos y tareas asincrónicas), para obtener más detalles, consulte los siguientes enlaces: ¿Diferencia entre RxJava y RxAndroid? https://www.quora.com/Cuál-es-la-diferencia-entre-Retrofit-y-RxJava-RxAndroid
Modernización:
https://medium.com/@elye.project/kotlin-and-retrofit-2-tutorial-with-working-codes-333a4422a890
LiveData y sala con kotlin:
Room es una capa de base de datos sobre una base de datos SQLite que solía eliminar la placa de caldera mientras obtenía datos de la base de datos sqlite local, use los siguientes enlaces: https://codelabs.developers.google.com/codelabs/android-room-with-a -ver-kotlin/#0
Después de comprender estos componentes (Kotlin, MVVM, Dagger, RxJava y RxAndroid, Retrofit, LiveData) individualmente, debe hacer todo esto en un solo proyecto, use el siguiente enlace:
Como jr. desarrollador de Android, estaba pensando como tú, pero elegí una ruta como:
(Si quieres, puedes ver cómo mezclarlos. Koin se agregará pronto. https://github.com/furkanaskin/CoinStalker )
¿Futuro?
Daga 2, tal vez Rxjava, etc.
Si conoce los conceptos básicos de Core Android y ha realizado al menos 1 o 2 proyectos, puede saltar a esto, https://android.jlelse.eu/why-to-choose-mvvm-over-mvp-android-architecture-33c0f2de5516