¿Tiene sentido usar Guice para Android

Estoy debatiendo utilizando guice en un proyecto de Android que es bastante complejo y tiene una gran cantidad de lógica de negocio. Guice parece ser un buen ajuste, pero cada vez que empiezo a leer más profundamente en él, comienza a verse más complicado de lo que necesita ser.

Una cosa que no entiendo es: si Guice es tan grande y la mejor manera de escribir código java, ¿por qué hay tan poco código Android que usa Guice … y por qué Google no usó guice internamente para Android?

El problema con demostrar las fortalezas de un marco de inyección de dependencia es que no es posible lograrlo con una simple aplicación Hello World. Estos marcos muestran su valor sólo en sistemas grandes con mucha complejidad. Además, tienen una curva de aprendizaje de alguna manera escarpada.

Por lo tanto, es bastante normal que no pueda encontrar suficientes tutoriales – proyectos de código abierto que usan Guice. Esto se usará con mayor frecuencia en aplicaciones empresariales que no se publican.

Como por qué Google no utiliza Guice, Guice no cabe en todas partes. Añade una sobrecarga de perfomance y no tiene sentido utilizarlo en lugares, donde no es necesario.

Guice tiene todo el sentido de ser utilizado y de hecho se utiliza en un montón de aplicaciones. La extensión RoboGuice añade algunas sutilezas para Android que la hacen muy productiva de usar.

De hecho, no puedo imaginar escribir una aplicación para Android sin ella. Muy doloroso.

Echa un vistazo a los enlaces a las aplicaciones que utilizan Roboguice en el sitio web (por ejemplo, Google Docs, OpenTable …). También se sabe que otras aplicaciones como la aplicación Square utilizan Guice directamente.

Tiene totalmente sentido .. ¡hazlo!

Junto con Robolectric también hará sus esfuerzos de prueba más fáciles.

PS: Soy un committer en RoboGuice así que soy parcial 😉

PPS – Junio ​​2013: Los desarrollos recientes han dado lugar a otros marcos basados ​​en inyección de anotación / dependencia que hacen la mayor parte del trabajo en tiempo de construcción y por lo tanto evitar el impacto de rendimiento de la reflexión de tiempo de ejecución Trabajo de rendimiento crítico – echa un vistazo a Dagger y AndroidAnnotations si está interesado en eso.

En realidad, google desalienta el uso de Guice o RoboGuice en aplicaciones Android debido a la sobrecarga de memoria.

Fuente:

http://developer.android.com/training/articles/memory.html#DependencyInjection

5.11.2014 Editar:

Hay una biblioteca de inyección de dependencia rápida dedicada para android. Puedo ver más y más personas que lo utilizan:

http://square.github.io/dagger/

13.04.2015 Editar: Google lanzó su propia versión de daga, que no utiliza la reflexión en tiempo de ejecución: http://google.github.io/dagger/

¿Sabes que hay RoboGuice ? Es Guice para Android.

  • Mantenga la clase anotada en Proguard
  • Android y RoboGuice - Inyectar vistas en Fragmento?
  • Android Roboguice proguard warning
  • ORMLite para Android: enlazar DAO con Roboguice
  • ¿Utilizando Inyección de Dependencia con Roboguice?
  • Uso de Guice para inyectar dependencias en el constructor de una actividad de Android
  • Proceso se bloquea durante la creación del inyector de RoboGuice, si hay una instancia burlada en cualquier módulo
  • Uso de RoboFragment con FragmentManager
  • ¿Cuáles son los beneficios específicos de usar DI en Android?
  • Maven + RoboGuice + ActionBarSherlock + RoboGuice-Sherlock
  • Aplicación para Android con RoboGuice 2.0 - Cómo inyectar un singleton con el contexto de la aplicación
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.