«

»

dic 03 2011

RoboGuice la librería que exprime nuestro código

Hoy es uno de esos dias en que navegando por la red uno acaba encontrando un pequeño tesoro, y no, no es que sea el visitante un millon de una web y me tocara un otro BMW (ya me han tocado tantos que perdi la cuenta, esto no emociona) si no que he descubierto una libreria de esas que sin duda cambian el dia a dia del picacodigos.

RoboGuice nos ayuda con esas tareas tediosas y rutinarias que tenemos que hacer una y otra vez en todas nuestras apps y que acaban resultando pesadas. Y no solo eso, a mas lineas de código mas posibilidad de bugs. ¿Siempre se te olvida comprobar si el resultado es nulo al usar getIntent().GetExtras()? RoboGuice te ayudará. Cansado de castear los findViewById() ¡ya no será necesario!

RoboGuice elimina la mecánica del desarrollo en Android de su código. Inyectar su vista, recursos, servicios del sistema, o cualquier otro objeto, y que RoboGuice se encargue de cuidar los detalles. Ahora solo tendrá que centrarse en la lógica real de su aplicación.

Muchas aplicaciones destacadas y que seguro conoces como Facebook Messenger, Pulse, Google Docs o SwiftKey ya usan esta librería así que nosotros no vamos a ser menos y aquí os la presentamos.

 

Descarga, Instalación y uso

Para usar RoboGuice tendremos que descargarnos estas dos librerias:

RoboGuice
guice-2.0-no_aop.jar
(¡ojo! No guice-3.0)

Una vez descargadas añadirlas al Build Path de nuestros proyectos Android (con mínimo 1.5, API level 3 y SDK Version 3).

Como último paso deberemos crear una clase que extienda de RoboApplication (la llamaremos MyApplication) y configurarla correctamente en el AndroidManifest.xml.

 

<application android:name="com.mycompany.myproject.MyApplication" ... >

 

Con esto ya tendriamos listo nuestro proyecto para usar RoboGuice, veamos ahora un ejemplo.

 

Ejemplo

Así sería nuestro código sin usar RoboGuice:
 

class AndroidWay extends Activity {
    TextView name;
    ImageView thumbnail;
    LocationManager loc;
    Drawable icon;
    String myName;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        name      = (TextView) findViewById(R.id.name);
        thumbnail = (ImageView) findViewById(R.id.thumbnail);
        loc       = (LocationManager) getSystemService(Activity.LOCATION_SERVICE);
        icon      = getResources().getDrawable(R.drawable.icon);
        myName    = getString(R.string.app_name);
        name.setText( "Hello, " + myName );
    }
}

 
Y así usandolo:
 

class RoboWay extends RoboActivity {
    @InjectView(R.id.name)             TextView name;
    @InjectView(R.id.thumbnail)        ImageView thumbnail;
    @InjectResource(R.drawable.icon)   Drawable icon;
    @InjectResource(R.string.app_name) String myName;
    @Inject                            LocationManager loc;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        name.setText( "Hello, " + myName );
    }
}

 
Como podemos comprobar a simple vista el código queda mucho mas limpio y se nos facilita bastante el trabajo de implementación. Pero esto es tan solo un ejemplo inicial de lo que esta librería nos permite ahora nos toca usarla y descubrir todo lo nos ofrece, nosotros lo haremos ¿y vosotros?

 
fuente | RoboGuice
 

Acerca del autor

JMPergar

Mobile Developer at @BeRepublic & Founder of @AndroCode. Silver Speaker & Member of Core Team at @GDGBarcelona.

  • Luis Alberto

    Me he quedado sin palabras, esto me lo encuentro fascinante!