🗡Dagger HILT: How to do DEPENDENCY INJECTION on Android ⚡

  Рет қаралды 12,514

DevExpert - Programación Android y Kotlin

DevExpert - Programación Android y Kotlin

Күн бұрын

Пікірлер: 87
@devexpert_io
@devexpert_io 4 жыл бұрын
👉 Descarga GRATIS la guía de Principios SOLID: devexperto.com/principios-solid-guia-gratis/ Si aún no te decides sobre si Kotlin es el lenguaje que deberías aprender, te animo a que te apuntes a mi masterclass gratuita 👉 bit.ly/2ONkWKE
@juanesdev
@juanesdev 4 жыл бұрын
Si antes me gustaba Dagger ahora aún más se ha simplificado demasiado, mucha gracias gran video, saludos desde Medellín - Colombia
@devexpert_io
@devexpert_io 4 жыл бұрын
Gracias Juan!
@luzperezn4203
@luzperezn4203 3 жыл бұрын
Excelente video, no estaba entendiendo que es Dagger pero ahora ya tengo una muy buena idea y cómo aprovecharlo. Muchísimas gracias! Estuve viendo tu canal y creo que me va a servir para continuar viendo cosas que no conocía de Android, nueva sub!
@devexpert_io
@devexpert_io 3 жыл бұрын
Muchas gracias Luz! Bienvenida!
@javstorres
@javstorres 4 жыл бұрын
Esta muy bueno, simplifica mucho, ahora veamos que tan bien se comporta en el testing!
@devexpert_io
@devexpert_io 4 жыл бұрын
Muchas gracias! Creo que ahí aún les faltan cosas, pero ya hay algunas facilidades para testing. En tests unitarios da igual, porque no hace falta usar el inyector. En tests de integración o de UI prometen que se pueden cambiar dependencias de forma individual (algo que con Dagger no se puede, hay que rehacer el módulo entero). ¿Te gustaría un vídeo sobre esto?
@alvarogarnett
@alvarogarnett 4 жыл бұрын
Hace un año empecé a usar Koin en vez de Dagger y tras leer mucho de Hilt, lo que veo que han hecho Hilt para parecerse lo máximo posible a Koin, sobretodo a nivel de simplicidad aunque en Koin no hay tantas anotaciones. Podrías hacer una comparación Hilt vs Koin? Gracias por el video, ha quedado muy claro su uso
@devexpert_io
@devexpert_io 4 жыл бұрын
Lo tengo apuntado. Pero vamos, personalmente pienso que si con Koin estás cómodo, es una opción perfectamente válida. A mí me gusta mucho por lo sencillo que es (más que Hilt, como bien dices). Gracias por tu comentario!
@drackon1995
@drackon1995 2 жыл бұрын
Excelente video, pero una duda. Donde prodria ver los videos anteriores para desarrollarlo desde antes que integras dagger hilt? Saludos desde Mexico.
@devexpert_io
@devexpert_io 2 жыл бұрын
No hay ninguno donde haga exactamente esto, porque es el código de una formación que tengo. Lo más cercano a eso lo puedes encontrar en este vídeo kzbin.info/www/bejne/oomadJilpLB2mbM
@i12capea
@i12capea 4 жыл бұрын
Que buena pinta! Con hilt se podría inyectar un viewmodel en un fragmento de una librería, y en la aplicación que integra la librería poder extender ese fragmento para personalizar algo y utilizar el viewmodel inyectado en este fragmento? Gracias ,un saludo, muy buen vídeo!
@devexpert_io
@devexpert_io 4 жыл бұрын
No parece la forma más adecuada de trabajar, porque una librería al final es un componente externo sobre el que no tenemos control, y el ViewModel forma parte de nuestra arquitectura.
@i12capea
@i12capea 4 жыл бұрын
@@devexpert_io Ya pero si yo hago la librería y la aplicación que integra estaría bien para realizar personalizaciones de la librería base
@devexpert_io
@devexpert_io 4 жыл бұрын
@@i12capea si tú tienes acceso a todos, entonces en principio no veo por qué no. Pero sin ver el código suena un poco raro lo que intentas ahí.
@ameamemx
@ameamemx 4 жыл бұрын
Excelente 👍🏻 hace ya un tiempo ⏳ que esperamos del tema ✌🏻 saludos 😉
@devexpert_io
@devexpert_io 4 жыл бұрын
No puede hacer tanto, si haber cómo 2 semanas que publicaron la Alpha 😂. Pero ya está aquí!
@AngelLopez1
@AngelLopez1 3 жыл бұрын
Que tal Antonio. Gracias por el video. Solo como retroalimentación: sería bueno si los tutoriales los pudieras hacer desde cero. Por ejemplo yo no vi el video de dagger por que ahorita lo único que necesito hacer es aprender a usar hilt y al ver este video, no me quedó muy claro por que usaste un proyecto empezado como ejemplo. Para mi fue como llegar tarde a una fiesta. Sería mejor si hilt lo hubieras explicado con un proyecto de cero. Solo mi punto de vista. Gracias nuevamente
@devexpert_io
@devexpert_io 3 жыл бұрын
Gracias por el feedback, lo tengo en cuenta. Pero sería muy difícil hacer un proyecto desde cero cada vez que se explica algo un poco más avanzado. Todos los vídeos durarían muchísimo y serían muy repetitivos, no? Qué propones?
@christianmeazza2309
@christianmeazza2309 4 жыл бұрын
Hola Antonio no había podido compilar mis apps al usar @ViewModelInject con DataBinding y con kapt { correctErrorTypes = true} por fin pude compilar. Creo que esos son los errores que corrige. El video me aclaró varias dudas que tenía, muchas gracias.
@devexpert_io
@devexpert_io 4 жыл бұрын
Ahhh pues mira, me alegro de que te sirviera! Yo lo estuve buscando un rato pero no me quedó nada claro, porque ni siquiera la referencia de Kotlin explica mucho.
@christianmeazza2309
@christianmeazza2309 4 жыл бұрын
@@devexpert_io Lo siento, volvió a fallar funcionó con un adapter pero intenté pasarle un dato desde el ViewModel y me muestra este error "A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptExecution" y es el que me muestra cada vez que intento usar DataBinding.
@devexpert_io
@devexpert_io 4 жыл бұрын
@@christianmeazza2309 pues la verdad que ni idea en ese caso... No lo he probado junto con databinding
@marcalastalsbota4357
@marcalastalsbota4357 4 жыл бұрын
Muy bueno, como siempre. Voto por que hagas el video de como usarlo en modulos kotlin sin android(no se si me acuerdo de java ya) y me encantaria uno comparando Hilt y Koin
@devexpert_io
@devexpert_io 4 жыл бұрын
Perfecto, pues apuntado queda. Gracias!
@carlosmartinezgadea427
@carlosmartinezgadea427 3 жыл бұрын
Esto me parece realmente interesante de cara al multiplatform o a módulos agnósticos de Android (como podrían ser data, use cases, domain en una Clean Architecture). Sería un gran plus ver esto en acción con Hilt! De momento, creo que me quedo con Koin.
@devexpert_io
@devexpert_io 3 жыл бұрын
Si los módulos de inyección los declaras todos en el módulo de App, en realidad da igual el inyector que uses. Lo único que tocaría implementar la inyección para cada plataforma en el caso de KMP. Si acoplas la inyección a todas las capas (tiene sus pros y sus contras) entonces hay que tener más cuidado. Pero si os fijáis, este ejemplo tiene capas que no sin Android y está hecho con Hilt
@carlosmartinezgadea427
@carlosmartinezgadea427 3 жыл бұрын
@@devexpert_io inicialmente había pensado que lo más sencillo era justamente eso, realizar la inyección en el app de cada plataforma. Me queda claro ahora, gracias! Aunque creo que tardaré aún un poco en meterme con KMP...
@albertmartorellgarcia8528
@albertmartorellgarcia8528 3 жыл бұрын
Apoyo la moción!
@omarcitorey1
@omarcitorey1 4 жыл бұрын
Se mira genial HILT , listo para implementarlo en mi proyecto :D
@devexpert_io
@devexpert_io 4 жыл бұрын
Está muy bien la verdad
@frigorifico91
@frigorifico91 4 жыл бұрын
Gran trabajo! Se agradece muchísimo tener un vídeo resumen con estas novedades. Con Hilt al no tener que crear una factoría para los VM, sabes si hay soporte para pasar argumentos de la activity o fragment por constructor en el VM junto con las dependencias de dagger?
@devexpert_io
@devexpert_io 4 жыл бұрын
Sí, si te fijas en el ejemplo del repositorio (me acabo de dar cuenta de que no lo he puesto en la descripción), la activity de detalle recibe un extra del intent. Aún tengo que buscar si es la mejor opción, pero como los ActivityComponent inyectan por defecto la activity, puedes sacar dependencias de ella sin problema: github.com/antoniolg/architect-coders/blob/hilt-sample/app/src/main/java/com/antonioleiva/mymovies/ui/detail/DetailActivityModule.kt
@frigorifico91
@frigorifico91 4 жыл бұрын
Genial! Muchas gracias
@MayerOlivaresSalinas
@MayerOlivaresSalinas 4 жыл бұрын
súper el video con la explicación precisa.
@devexpert_io
@devexpert_io 4 жыл бұрын
Muchas gracias Mayer!
@adriannieves9660
@adriannieves9660 4 жыл бұрын
Hola Antonio, muy bueno el video. Me gustaría ver como se comporta en el testing y la comparación con KOIN. Saludos!
@devexpert_io
@devexpert_io 4 жыл бұрын
Genial Adrián! Pues me lo apunto también
@javiercardona6478
@javiercardona6478 4 жыл бұрын
Muy bueno el video, espero que realice el video de como implementarlo en un modulo kotlin o java donde no esta el framework de android
@devexpert_io
@devexpert_io 4 жыл бұрын
Perfecto Javier, me lo anoto!
@enriquemarin8842
@enriquemarin8842 4 жыл бұрын
Excelente vídeo y extraordinario canal. Una pregunta Antonio. Necesito pasar el contexto de aplicación para shared preferences al viewmodel. ¿Es correcto o puede originar fugas de memoria está acción? ¿Se puede inyectar el context de la aplicación con dagger/hilt? Gracias de antemano por tu atención.
@devexpert_io
@devexpert_io 4 жыл бұрын
Se puede, sí. Sí es el de aplicación no hay problema. Hilt inyecta automáticamente el application en el ApplicationComponent, así que lo tienes disponible siempre como dependencia.
@enriquemarin8842
@enriquemarin8842 4 жыл бұрын
Muchas gracias por la aclaración y tu rapidez😀👌
@hsb12001
@hsb12001 2 жыл бұрын
It is a great work, Congratulation.
@devexpert_io
@devexpert_io 2 жыл бұрын
Thanks!
@FuadKamal
@FuadKamal 4 жыл бұрын
The coolest part of this video is Antonio's awesome Samurai Android shirt. :)
@devexpert_io
@devexpert_io 4 жыл бұрын
Haha, thanks I guess 😅. That means that the content is bad? 😆
@FuadKamal
@FuadKamal 4 жыл бұрын
@@devexpert_io oh no, not at all. I just love that shirt. :)
@armandoquispeticona2410
@armandoquispeticona2410 3 жыл бұрын
Ahora que esta en Beta creo que es una muy buena opción para aprender :). Después de haber utilizado Koin probare esta version :)
@devexpert_io
@devexpert_io 3 жыл бұрын
Si duda! Tengo pendiente grabar un nuevo vídeo actualizando las novedades
@aaronbautista1471
@aaronbautista1471 3 жыл бұрын
@@devexpert_io estaría super ese video
@devexpert_io
@devexpert_io 3 жыл бұрын
Pues lo tenía grabado pero se grabó mal el audio, y ahora que estoy de baja paternal no o sé cuándo voy a poder hacerlo. Lo que sí pude actualizar es el artículo: devexperto.com/dagger-hilt
@ivanvarela5063
@ivanvarela5063 3 жыл бұрын
Me gusto el video pero si estaria bueno que el ejemplo de inyeccion de dependencia sea mas con ejercicio mas sencillo.
@devexpert_io
@devexpert_io 3 жыл бұрын
Es un ejemplo relativamente sencillo, qué es lo que te ha resultado complicado?
@ivanvarela5063
@ivanvarela5063 3 жыл бұрын
@@devexpert_io Hola!estoy iniciandome en elmundo de la prograccion en android y con este video al ver un proyecto armado con mucchas cosas se me dificulta aprender. Si estaria genial empezar con un proyecto desde cero y con el tipico ejemplo en POO del auto(una forma de decir). Gracias!!
@devexpert_io
@devexpert_io 3 жыл бұрын
Ah claro, has empezado muy por el final. La inyección de dependencias es algo para lo que hace falta tener muchos conocimientos previos. Para que te hagas una idea, en una formación que doy de 3 meses, esto lo damos cuando llevamos casi 2 meses y medio aprendiendo otras cosas
@seba23571
@seba23571 3 жыл бұрын
una consulta que tal esta la libreria kodein, se ve mas sencilla
@devexpert_io
@devexpert_io 3 жыл бұрын
Hace mucho que no la uso, pero creo que es muy parecida a Koin. Buena opción también
@d-landjs
@d-landjs 4 ай бұрын
Excelente!
@devexpert_io
@devexpert_io 4 ай бұрын
Gracias!
@jasalvador
@jasalvador 4 жыл бұрын
Genial vídeo! Desde que lo vi cuando lo presentaron tenía ganas de empezar a usarlo. Una duda que me surge, Si el ViewModel ya está anotado con @ViewModelInject es necesario también indicar en el módulo ActivityModule como se va a proveer esa dependencia? no sería suficiente con la anotación? Y si se quiere que sea retained, indicandole con la anotación @ActivityRetainedScoped no sería suficiente? Disculpa si es una pregunta estúpida. Venía ya mucho tiempo usando Koin y Dagger lo usé solo una vez. Ahora con Hilt, estoy volviendo a él. Muchas gracias!
@devexpert_io
@devexpert_io 4 жыл бұрын
Sí sí, si lo inyectas con ViewModelnject ya no hace falta ponerlo en el módulo. Muchas gracias!
@devexpert_io
@devexpert_io 4 жыл бұрын
Ah ya veo por qué lo dices, porque no lo borré en el código que nuestro durante el vídeo. Si quieres echa un ojo al código de ejemplo, que allí no está puesto. Lo tengo enlazado en la descripción.
@jasalvador
@jasalvador 4 жыл бұрын
@@devexpert_io Cierto muchas gracias!! Acabo de clonarme el repo y ahí no está. Todo aclarado, saludos!! =D
@isaimosso2764
@isaimosso2764 4 жыл бұрын
Hola Antonio no se si llegaste a necesitar un viewmodel en un servicio en mi caso en FirebaseMessagingService, estoy migrando mi app de Koin a Hilt, pero tengo un problema con Hilt al momento de inyectar el viewmodel La segunda linea con KOIN excelente Tercera linea Es la del problema no reconoce viewModels()
@devexpert_io
@devexpert_io 4 жыл бұрын
Habría que verlo a fondo, pero suena raro eso de usar un ViewModel con un Service, no? El ViewModel se usa para sobrevivir a los cambios de configuración de activities y fragments, pero un service no tiene esa situación. Imagino que Koin no está preparado para inyectar un ViewModel en un service porque no es un caso de uso habitual.
@andresjosemendezpachano1334
@andresjosemendezpachano1334 4 жыл бұрын
Sería bueno hacer un vídeo usando Google Chrome desde la instalación y usar emulador. Saludos
@devexpert_io
@devexpert_io 4 жыл бұрын
Desde la instalación de Android Studio? Te refieres un tutorial de iniciación a Android?
@andresjosemendezpachano1334
@andresjosemendezpachano1334 4 жыл бұрын
@@devexpert_io si pero usando Chrome OS
@devexpert_io
@devexpert_io 4 жыл бұрын
Aaah con Chrome OS. La verdad que no sé mucho al respecto. Se puede instalar en cualquier ordenador?
@andresjosemendezpachano1334
@andresjosemendezpachano1334 4 жыл бұрын
@@devexpert_io creo que no pero voy a investigar y te hago llegar la info
@ManishSputnik
@ManishSputnik 3 жыл бұрын
Muy buen vídeo! Aunque no tenga que ver nada con este vídeo, el hecho de indicarle el tipo a una variable para que Android no lo infiera, aunque sea mínimamente, ¿sabes si mejora el tiempo de compilación o ejecución de la aplicación? (que toda optimización por nimia que sea, bienvenida sea jejej)
@devexpert_io
@devexpert_io 3 жыл бұрын
En ejecución seguro que no hay diferencia, porque el bytecode final es el mismo. En compilación no sabría decirte... No he visto comparativas ni nadie indicando que viera mucha diferencia
@butelo
@butelo 4 жыл бұрын
hola gracias por el vídeo, un pequeño comentario: en la docu oficial de hilt dice: "You must also annotate the SavedStateHandle dependency with @Assisted" cuando inyectas el viewmodel via constructor developer.android.com/training/dependency-injection/hilt-jetpack aunque tampoco explica el motivo
@devexpert_io
@devexpert_io 4 жыл бұрын
Le echaré un ojo, la verdad que no sé muy bien a qué se refiere.
@blinkbyker
@blinkbyker 3 жыл бұрын
Dónde puedo conseguir esa camiseta? D:!
@devexpert_io
@devexpert_io 3 жыл бұрын
Esto eran ediciones limitadas, ya no se pueden conseguir 😔
@oscarescamilla5627
@oscarescamilla5627 4 жыл бұрын
Espero esto ya jaja
@devexpert_io
@devexpert_io 4 жыл бұрын
Genial! No falta nada!
@alanger7507
@alanger7507 3 жыл бұрын
Estaba buscando tu repo q mencionaste pero no lo encuentro
@devexpert_io
@devexpert_io 3 жыл бұрын
Esta es, voy a revisar la descripción del vídeo para ponerlo si no github.com/antoniolg/architect-coders/tree/hilt-sample
@devexpert_io
@devexpert_io 3 жыл бұрын
sí, sí que estaba en enlaces relacionados, aunque un poco escondido.
@perezoso210
@perezoso210 3 жыл бұрын
Deberías de hacer la actualización de este video ya con calificadores para esos módulos que devuelven el mismo tipo de datos, ándale
@devexpert_io
@devexpert_io 3 жыл бұрын
Ya está grabado, Perúy tardará unas semanas en salir
@perezoso210
@perezoso210 3 жыл бұрын
@@devexpert_io Eres un máster,saludos desde México
@moto_discover_01
@moto_discover_01 5 ай бұрын
Horrible cuando explican un tema encima de un código ya hecho que además NO compila! Deberías aprender de ArisDev
@devexpert_io
@devexpert_io 5 ай бұрын
Este código tiene 4 años amigo, es normal si no compila
Hilt Dependency Injection (Kotlin Beginner Example)
21:20
CodingWithMitch
Рет қаралды 42 М.
🔹 What is REACTIVE Programming 👉 [Coroutines Flow Part 1]
22:57
DevExpert - Programación Android y Kotlin
Рет қаралды 14 М.
Disrespect or Respect 💔❤️
00:27
Thiago Productions
Рет қаралды 36 МЛН
They Chose Kindness Over Abuse in Their Team #shorts
00:20
I migliori trucchetti di Fabiosa
Рет қаралды 12 МЛН
PIZZA or CHICKEN // Left or Right Challenge
00:18
Hungry FAM
Рет қаралды 14 МЛН
Dagger Hilt 1.0🔪 para Android ya es ESTABLE: Cómo usarlo en 2021
19:21
DevExpert - Programación Android y Kotlin
Рет қаралды 7 М.
Черные дыры. Борис Штерн
1:01:06
Лекторий Живой город
Рет қаралды 65 М.
попытка написать змейку на ассемблере
1:37:00
Coroutines in Kotlin 👉 Learn how to use them in 5 minutes 🙌
7:24
DevExpert - Programación Android y Kotlin
Рет қаралды 26 М.
🟥 Principios SOLID - 5 + 1 Reglas que CAMBIARÁN tu forma de PROGRAMAR [2022]
52:18
DevExpert - Programación Android y Kotlin
Рет қаралды 42 М.
🔷 Novedades de ANDROID 11🔷 para Desarrolladores (2020)
13:00
DevExpert - Programación Android y Kotlin
Рет қаралды 2,4 М.
Inyeccion de Dependencias con Hilt en Android
20:15
Martin Kiperszmid | Programador
Рет қаралды 3,6 М.
Android Dependency Injection Dagger Hilt || بالعربي
26:51
Disrespect or Respect 💔❤️
00:27
Thiago Productions
Рет қаралды 36 МЛН