Desarrollando The Time Box, mi primera aplicación para Android

El ecosistema Android ha ido madurando de manera muy acelerada en los últimos años, y lo que comenzó como un proyecto piloto se ha convertido en el segundo jugador (o primero según el mercado) móvil a nivel mundial, y aprender a desarrollar para él de manera nativa puede ser una opción interesante, sobre todo si ya hemos trabajado en plataformas como Windows Phone o iOS.

Esto me llevó a hacer el año pasado un curso de Coursera sobre Desarrollo de aplicaciones para Android, y, con lo aprendido, hacer mi primera aplicación. En este artículo cuento mi experiencia desarrollando la misma, así como las herramientas y los recursos utilizados en este primer viaje por el ecosistema Android.

Descarga The Time Box desde Google Play

La aplicación

The Time Box es una mezcla entre lista de tareas y cronómetro, con opción de poder agregar manualmente las horas y minutos transcurridos de la actividad deseadas. Este es el aspecto que ha tenido desde la primera vez que tuve algo “depurable” hasta la versión actualmente disponible en la tienda:

Presentation1

Tras la primera versión, Sergio Moya, compañero de aventuras, me sugirió utilizar material design, y gracias a las guías disponibles y a las opciones de compatibilidad con terminales antiguos, pude adaptar la mayor parte del diseño sin demasiados problemas.

Lenguaje

Para programar en android podemos utilizar Java, o desde algunas versiones C++ para trabajo intensivo de procesador, como juegos. También podemos utilizar otros lenguajes que compilen a la VM como es el caso de Clojure, Scala o Kotlin de Jetbrains, siendo este último una alternativa interesante, ya que se trata de un lenguaje de más alto nivel, orientado a objetos y dinámico. Tras probarlo durante un par de iteraciones volví a Java, aunque no descarto utilizarlo en un futuro.

Arquitectura

architecture_app

La aplicación cuenta con tres vistas (actividades como se denominan en Android), un controlador de tabs, dos fragmentos personalizados y varias clases auxiliares para el manejo de los datos.

Componentes externos

La aplicación emplea dos componentes adicionales:

  • Joda-time: Aporta una mejor gestión de fechas y horas a las clases existentes de Java
  • SugarORM: Un mapper relacional muy sencillo que permite tener una pequeña base de datos sqlite donde almacenar los datos, que además cuenta con soporte para migraciones.

Testing

Actualmente el proyecto cuenta con algunos tests unitarios, y la idea es que los tests vayan aumentando a medida que se necesite más funcionalidad para evitar pruebas manuales, que al final son las que más tiempo consumen.

Herramientas

Las herramientas para el desarrollo Android también han mejorado mucho últimamente, podemos utilizar Eclipse con el plugin ADT, o también podemos emplear Android Studio, basado en InteliJ IDEA y soportado oficialmente por Google.

Para poder depurar nuestra aplicación, lo mejor y más rápido es contar con un dispositivo físico, o varios, ya que hemos de probar con diferentes versiones. Podemos además recurrir a emuladores como Genymotion, que al estar basado en VirtualBox, nos proporciona una máquina virtual muy rápida y fluida, lejos del pobre rendimiento que proporciona el emulador oficial.

Publicación y subida

Para poder publicar en Google Play (de momento no he considerado otros marketplaces como el de Amazon, aunque están en mi lista) necesitamos pagar la cuota de inscripción, que son $25 y que nos dan acceso permanente, sin necesidad de renovar. Como la aplicación es gratuita y (de momento) no usa publicidad, el proceso de registro es bastante simple. Una vez que tenemos la aplicación lista, basta con generar el APK desde nuestro editor, subirlo a la plataforma y llenar la información relativa al título, descripción, así como algunas imágenes.

Una de las cosas más interesantes que ofrece la plataforma son las opciones de Alpha y Beta, ya que podemos tener hasta tres versiones subidas de la aplicación al mismo tiempo para tres grupos distintos de usuarios sin tener que recurrir a servicios externos.

Conclusiones

Esta pequeña utilidad que espero seguir mejorando con el tiempo me ha permitido tener un primer contacto con la plataforma y reencontrarme con Java después de varios años. Es una experiencia muy interesante y aporta una visión adicional si trabajas con varias plataformas.

Descarga The Time Box desde Google Play

Recursos

Material Design

Un pensamiento en “Desarrollando The Time Box, mi primera aplicación para Android

  1. Manuel

    Aunque soy muy fanático de C# Java me está ganando como lenguaje. Son ya muchos años en los que C# no termina de explotar como lenguaje multiplataforma y me estoy replanteando muy seriamente el futuro. He empezado a utilizar Java de nuevo después de muchos años y ahora que existe un entorno de programación como IntelliJ IDEA me siento bastante cómodo picando en Java.

    Veremos cuál será mi opción mayoritaria de cara a futuro pero intuyo que Java, personalmente ya me resulta insostenible utilizar un lenguaje programación que no se pueda utliizar fácilmente en múltiples sistemas. En la actualidad hay un amplio abanico de plataformas diferentes con millones de usuarios y es algo definitivo a largo plazo, centrarse sólo en una de ellas es una locura.

    Responder

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