No es extraño que Dagger, un nuevo framework que nos permite usar inyección de dependencia en Android haya surgido de Square, la startup dedicada al pago a través del móvil. No es raro, ya que el CTO de la compañía (Bob Lee) fue uno de los creadores de Google Guice, framework surgido hace ya unos 3 o 4 años siguiendo los pasos de Spring.
El concepto de inyección de dependencia o Inversión de Control (IoC), no es nada nuevo. La prueba es los citados anteriormente frameworks que basan buena parte su funcionamiento en ella, como Spring Framework o Google Guice. Pero cuando nos enfrentamos a desarrollos en plataformas móviles, como Android, nos damos cuenta que fueron diseñados con la JVM estándar en mente y no para un entorno móvil.
Han surgido algunas propuestas, como Robo Guice, una adaptación muy buena para Android de Google Guice. Aunque Dagger tiene un enfoque distinto, centrándose en simplificar las características que permite para aprovechar un mayor rendimiento.
Podemos encontrar mucha sintaxis similar a Guice para la inicialización de dependencias. Ambos usan el estándar JSR 330, @Inject como anotación estándar. Dagger sacrifica muchas características de Guice para ofrecer un mejor soporte en Android, en lo que podemos comprobar en la detección de errores en tiempo de compilación de las anotaciones con enlaces incompletos.
Echamos en falta la definición de scope en comparación con el resto de frameworks. Dagger sólo es compatible con la anotación @Singleton y nada más. Algo bastante de esperar si tenemos en cuenta la naturaleza totalmente distinta de una aplicación móvil al desarrollo de aplicaciones webs. Aun falta que trabajen en algunos aspecto como la inyección métodos y campos, pero la cosa pinta bastante bien.
Habrá que estar atentos a futuras actualizaciones del código que podemos seguir en Github soportado por Square, usado actualmente en su aplicación móvil para Android. De momento, la única documentación clara que podemos encontrar es la disponible en la web y algunos ejemplos básicos.
Sitio web | Dagger Github | Dagger Más información | Square En Genbeta Dev | ¿Qué es la inyección de dependencias?
Ver todos los comentarios en https://www.genbeta.com
VER 0 Comentario