Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Android
Code

Crear y Publicar una Librería Android

Difficulty:IntermediateLength:MediumLanguages:

Spanish (Español) translation by Javier Salesi (you can also view the original English article)

Introducción

Nuestras vidas como desarrolladores Android serían mucho más difíciles si no fuera por las librerías de terceros que nos fascina incluir en nuestros proyectos. En éste tutorial, aprenderás como retribuir a la comunidad de desarrolladores al crear y publicar tus propias librerías Android, que la gente puede agregar sin ningún esfuerzo en sus proyectos.

1. Crear una Librería Android

Si tu librería se va a componer únicamente de clases Java, empacándola como un JAR y distribuyéndola usando un archivo host es quizá la forma más fácil y rápida de compartirla. Si fueras a crearla desde la consola, el siguiente comando sería suficiente:

Sin embargo, éste tutorial, te muestra como trabajar con librerías más complejas que contienen no solo clases Java, sino también varios tipos de recursos y archivos XML. Tales librerías son creadas por módulos de librerías Android y son generalmente empacadas como archivos AAR.

Creemos una simple librería Android que ofrece un View personalizado a desarrolladores que la utilicen.

Paso 1: Agregar un Nuevo Módulo

Para comenzar, agrega un nuevo módulo Android a tu proyecto seleccionando New > New Module del menú File. Se mostrará la siguiente pantalla, que ofrece muchas opciones:

New module dialog

Selecciona Android Library y presiona Next. En el formulario que sigue, ingresa un nombre para tu librería y pulsa Next. Llamaré a ésta librería mylittlelibrary.

En la última pantalla, selecciona Add no Activity y presiona Finish.

Ahora tu proyecto tendrá dos módulos, uno para la aplicación y uno para la librería. Aquí está como se ve su estructura:

Structure of project

Paso 2: Crea un Layout (Maquetado)

Crea un nuevo layout XML al dar click derecho en el folder res de tu módulo de librería y selecciona New > XML > Layout XML File. Nómbralo my_view.xml.

Para mantener éste tutorial sencillo, crearemos un View personalzado que tiene dos widgets TextView dentro de un LinearLayout. Después de agregar algo de texto en los widgets TextView, el archivo layout XML debería verse así:

Paso 3: Crea una Clase Java

Crea una clase Java y nómbrala MyView.java. Asegúrate de poner éste archivo en el directorio src del módulo de la biblioteca-no en el módulo de la aplicación.

Para hacer que ésta clase se comporte como un View, hagamosla una subclase de la clase LinearLayout. Android Studio te pedirá añadir constructores a la clase. Después de agregarlos, la nueva clase debería verse así:

Como puedes ver, ahora tenemos dos constructores. Para evitar agregar código de inicialización a cada constructor, llamamos a un método llamado initialize desde cada constructor. Agrega el siguiente código a cada constructor:

En el método initialize, llamamos a inflate para asociar el maquetado que creamos en el paso anterior con la clase.

2. Usa la Librería Localmente

Ahora que la librería está lista, hagamos uso de ella en el módulo app del mismo proyecto para asegurarnos de que no hay problemas. Para hacer eso, agreguémosla como una dependencia compile en el archivo build.gradle del módulo de la aplicación:

Crea una nueva clase Java, MainActivity, dentro del módulo de la aplicación. Hazla una subclase de la clase Activity y sobreescribe su método onCreate.

Dentro del método onCreate, crea una instancia de la view personalizada usando su constructor. Pásala al método setContentView para que ocupe todo el espacio de la pantalla de la Activity:

Tu Activity está ahora lista. Después de agregarla al manifiesto de la aplicación, crea tu proyecto y despliega tu aplicación en un dispositivo Android. Deberías poder ver el view personalizado cuando inicia la aplicación.

3. Publica Tu Librería en Bintray

Bintray es una plataforma popular que puedes usar para publicar tus librerías Android. Es gratuita y fácil de usar.

Comienza por crear una cuenta en Bintray. Después de ingresar a tu cuenta, verás que ya tienes seis repositorios. Puedes usar uno de ellos o crear un nuevo repositorio. Para éste tutorial, estaré usando el repositorio llamado maven, que es un repositorio Maven.

Homepage

Visita la página de tu perfil y da click en el botón Edit. En la próxima página, da click en el enlace API Key para ver tu clave API.

API Key

Anota la clave, porque la necesitarás para autenticarte cuando usas el plugin de Bintray.

Paso 1: Agrega los Plugins Necesarios

Para interactuar con Bintray en Android Studio, deberías incluir el plugin de Bintray en las dependencies (dependencias) del archivo build.gradle de tu proyecto.

Debido a que subirás la librería al repositorio Maven, también deberis agregar el plugin de Maven como se muestra abajo.

Paso 2: Aplica los Plugins

Abre el archivo build.gradle del módulo de tu librería y agrega el siguiente código para aplicar los plugins que agregamos en el paso anterior.

Paso 3: Especifica los Detalles de POM

El plugin de Bintray buscará un archivo POM cuando suba la librería. Aunque el plugin de Marven lo genera por tí, deberías especificar el valor de la etiqueta groupId y el valor de la etiqueta version tu mismo. Para hacer eso, utiliza las variables group y version en tu archivo gradle.

Si estás familiarizado con Maven y te preguntas por qué no especificamos el valor de la etiqueta artifactId, es porque el plugin de Maven, por defecto, utiliza el nombre de tu librería como el artifactId.

Paso 4: Genera un Sources JAR

Para cumplir con los estándares de Maven, tu biblioteca también debería tener un archivo JAR conteniendo los archivos de origen de la librería. Para generar el archivo JAR, crea una nueva tarea Jar, generateSourcesJar, y especifica la ubicación de los archivos de origen usando la función from.

Paso 5: Genera un Javadoc JAR

También se recomeinda que tu biblioteca tenga un archivo JAR conteniendo su Javadocs (documentación de proyectos Java). Debido a que no tienes actualmente ningún Javadocs, crea una tarea Javadoc, generatJavadocs, para generarlos. Utiliza la variable source para especificar la ubicación de los archivos de origen. También deberías actualizar la variable classpath para que la tarea puede encontrar clases que pertenecen al Android SDK. Puedes hacer ésto al agregar el valor de retorno del método android.getBootClasspath a él.

Luego, para generar un JAR de los Javadocs, crea una tarea Jar, generateJavadocsJar, y pasa la propiedad destinationDir de generateJavadocs a su función from. Tu nueva tarea debería verse así:

Para asegurarte de que la tarea generateJavadocsJar solo inicia cuando la tarea generateJavadocs se ha completado, agrega el siguiente fragmento de código, que usa el método dependsOn para ordenar las tareas:

Paso 6: Incluye los archivos JAR Generados

Para incluir los archivos de origen y JAR Javadoc en la lista de artifacts (artefactos), que serán subidos al repositorio de Maven, deberías agregar los nombres de sus tareas a un parámetroconfiguration llamado archives. Para hacer eso, usa el siguiente fragmento de código:

Paso 7: Ejecuta las Tareas

Ahora es tiempo de ejecutar las tareas que creamos en los pasos anteriores. Abre la ventana Gradle Projects y busca una tarea llamada install.

Install task

Haz doble click en ella para ejecutar las tareas asociadas con el módulo de la librería. Una vez que se termine de ejecutar, tendrás todo lo que necesitas para publicar tu librería, un archivo POM válido, un archivo AAR, un JAR origen, y un JAR de Javadocs.

Paso 8: Configura el Plugin de Bintray

Para configurar el plugin, deberías usar la clausura o cierre bintray en tu archivo Gradle. Primero, autentícate usando las variables user y key, correspondientes a tu nombre de usuario y la clave de API de Bintray respectivamente.

En Bintray, tu biblioteca residirá  dentro de un Bintray package (paquete Bintray). Deberías proporcionar detalles sobre como utilizar los parámetros intuitivamente llamados repo, name, licenses y vcsUrl de la clausura o cierre pkg. Si el paquete no existe, será creado automáticamente por tí.

Cuando subas tus archivos a Bintray, serán asociados con una versión del paquete Bintray. Por lo tanto, pkg debe contener una clausura o cierre version cuya propiedad name es establecida a un nombre único. Opcionalmente, también puedes proporcionar una descripción, fecha de lanzamiento, y etiqueta Git que utiliza los parámetros desc, released y vcsTag.

Finalmente, para especificar los archivos que deberían ser subidos, establece el valor del parámetro configuration en archives.

Ésta es una configuración de ejemplo:

Paso 9: Sube Archivos que Utilizan el Plugin de Bintray

Abre la ventana Gradle Projects de nuevo y busca la tarea bintrayUpload. Haz doble click en él para comenzar a subir los archivos.

Bintray upload

Una vez que se completa la tarea, abre un navegador para visitar la página de detalles de tu paquete Bintray. Verás una notificación que señala que tienes cuatro archivos no publicados. Para publicar éstos archivos, da click en el enlace Publish.

Notification about unpublished files

4. Usar la Librería de Bintray

Tu librería está ahora disponible como un paquete Bintray. Una vez que compartes la URL de tu repositorio Maven, junto con el ID de grupo, ID del artefacto, y el número de versión, cualquier desarrollador puede accesar a tu librería. Por ejemplo, para usar la librería que creamos, los desarrolladores tendrían que incluir el siguiente fragmento de código:

Nota que el desarrollador tiene que incluir explícitamente tu repositorio en la lista de repositories antes de agregar la librería como una dependencia compile.

5. Agregar la Librería a JCenter

Por defecto, Android Studio busca librerías en un repositorio llamado JCenter. Si incluyes tu librería en el repositorio JCenter, los desarrolladores no tendrán que agregar nada a su lista repositories.

Para agregar tu librería a JCenter, abre un navegador y visita la página de detalles de tu paquete Bintray. Da click en el botón etiquetado Add to JCenter.

JCenter button

Posteriormente serás llevado a una página que te permite redactar un mensaje. Puedes usar el campo Comments para mencionar opcionalmente cualquier detalle sobre la librería.

Compose message page

Da click en el botón Send para comenzar el proceso de revisión de Bintray. En uno o dos días, la gente de Bintray enlazarán tu librería al repositorio de JCenter y podrás ver el enlace a JCenter en la página de detalles de tu paquete.

Link to JCenter

Cualquier desarrollador ahora puede usar tu librería sin cambiar la lista de repositories.

Conclusión

En éste tutorial, aprendiste como crear un sencillo módulo de librería Android y publicarlo tanto en tu propio repositorio Maven como en el repositorio JCenter. En el camino, también aprendiste como crear y ejecutar diferentes tipos de tareas gradle.

Para aprender más de Bintray, visita el manual del usuario de Bintray.

¡Sé el primero en conocer las nuevas traducciones–sigue @tutsplus_es en Twitter!

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.