Reutiliza tu código Android

Buenas, ya llevamos unos cuantos meses hablando de Android en NosinmiUbuntu y algunos de vosotros seguramente ya habréis empezado vuestros proyectos y estaréis como locos experimentando un poco de aquí y un poco de allí. Si tenéis varios proyectos en marcha seguramente os ha pasado que en más de uno habéis implementado un método o una clase igual, por ejemplo una clase para acceder a base de datos.



Si es un solo método o una sola clase, normalmente nos da igual hacer un corta/pega, pero los que ya llevamos bastantes años programando sabemos que siempre hay más de un método y más de una clase que se repetirá en el mismo proyecto.


Además siempre podemos encontrar una forma de mejorar un método o con el tiempo se descubren bugs que es necesario reparar en todos los sitios donde se incluyó dicho método.


En Android/Eclipse tenemos una forma de minimizar todo ese código repetido. La solución es muy simple. Imaginaros por ejemplo que queremos hacer una serie de métodos que nos ayuden a formatear texto de diferentes formas, bien para formatear fechas de una determinada forma, bien para hacer el reemplazo de las comillas para los datos que insertamos en base de datos. Pues bien con esta lista de métodos comunes a todos los proyectos podéis crear una clase o las que consideréis oportunas y compartirlas en todos los proyectos en los que trabajéis.


Lo primero que debemos hacer es crear un nuevo proyecto Android en Eclipse. En este caso cuando esteis configurando el proyecto no es necesario que seleccionéis la opción de crear una activity.





El siguiente paso es hacer botón derecho sobre este proyecto nuevo en la ventana de la izquierda donde tenemos la lista de todos los proyectos. Seleccionáis el apartado Android y abajo de todo debe aparecer una opción para indicar que este proyecto es una librería. Lo chequeamos, aplicamos y aceptamos.





Ahora podéis crear la clase que mencionábamos antes, o todas las que vayáis a necesitar. Si consideráis que algunas clases no tienen nada que ver unas con otras lo mejor es separarlas en distintos proyectos, de esta forma si hacéis una librería para acceder a bases de datos y no la necesitáis en alguno de vuestros proyectos simplemente no la añadís y listo.


El siguiente paso una vez tenéis lista vuestra librería con vuestros métodos es añadirla en los proyectos donde las vayáis a necesitar. Los pasos a seguir son muy similares a los que seguimos antes. Botón derecho sobre el nombre de nuestro proyecto, propiedades y sección Android. En el mismo punto de antes, ahora en vez de decir que es una librería debemos añadir una. Pulsamos el botón de añadir, aquí se nos mostrará una ventana con todas las librerías que tenemos disponibles, seleccionamos la que hemos creado al principio y aceptamos todo.





Ahora podremos hacer referencia a los métodos existentes en nuestra librería, simplemente deberemos hacer el import correspondiente, igual que si utilizamos un elemento de la API de Android. Como veis en la imagen siguiente nuestro proyecto librería aparece referenciada en el proyecto que la utiliza.





Cuando utilicéis un proyecto como librería debéis tener en cuenta que si utilizáis un elemento de la API de Android que utilice algún permiso ademas de declararlo en el archivo AndroidManifest.xml de vuestra librería debéis declararlo también en el proyecto donde incluis la librería. Pasa lo mismo con las activitys, debéis declarar estas en ambos proyectos.


Otra cosa que también debéis recordar es que si una vez añadida vuestra librería a vuestro proyecto hacéis cambios en ella, debéis actualizar los proyectos para que los cambios se hagan efectivos.


Una vez tengáis lista vuestra aplicación y la ejecutéis, el compilador de Android se encargará de juntar el proyecto y las librerías y empaquetarlo en el mismo archivo apk.

Como veis este es un método muy fácil para reutilizar vuestro código Android y evitar que repitáis una y otra vez el mismo código, así como ayudaros a agilizar los cambios y la reparación de bugs de vuestro día a día.

Comments are closed.