Organizando dependencias con Gradle

Buenas a todos!

En un proyecto Android, Gradle es el encargado de las tareas de compilación, empaquetado y generación de apks, entre otras tareas. Hoy quiero hablar sobre una de estas tareas: la gestión dependencias de terceros.

Gradle permite añadir dependencias a nuestro proyecto de una forma tan fácil como añadir una línea al fichero build.gradle del módulo app. Algo parecido a esto.

Esto tiene un problema cuando la biblioteca en cuestión está dividida en varias dependencias, y tienes que cambiar la versión de cada una de ellas. Si se declaran así las dependencias tendremos que actualizar la versión tantas veces como la uses en cada uno de los módulos de tu aplicación.

Para agilizar la actualización de versiones y para ordenar y limpiar los ficheros gradle de mi aplicación investigué como podía definir la versión de la biblioteca aparte en un solo lugar y así cuando haya que actualizar la versión, cambiarlo sólo ahí. Encontré en el repo Android-CleanArchitecture de Fernando Cejas una forma que me gustó.

Las dependencias de todo el proyecto se definen en un nuevo fichero, dependencies.gradle. En él se definen las versiones de cada biblioteca y además el paquete asociado a la biblioteca. Este fichero tiene esta pinta:

Las depedencias del módulo app quedan muy limpias, ya que además de llevarnos las versiones a otro fichero, también movimos el nombre del paquete, el SDK mínimo, el código de versión y el nombre de la versión.

Ahora ya no tenemos cambiar las versiones en muchos sitios, sino solo en uno. Otra ventaja que me parece interesante es que este fichero de dependencias aparte podría ser compartido para el resto de apps que desarrolles. Es decir, normalmente las dependencias entre las aplicaciones no suelen variar, por lo que podría copiarse cambiando el nombre del paquete y la versión y todo seguiría funcionando 🙂

Un saludo!

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s