English version
Después de varios meses de largas sesiones escribiendo código en casa después del trabajo (reconozco que también tomando más bebidas energéticas de lo recomendable), por fin terminé y he publicado la versión 1.0 de mi primera aplicación para teléfonos Android.
Mi motivación
El primer motivo que se le suele venir a la gente a la cabeza para hacer cualquier cosa es el dinero, pero en este caso esa no es la razón.
Dudo mucho que esta aplicación me convierta en millonario, de hecho, de momento me está costando dinero, aunque para ser sincero, he tenido que invertir muy poco efectivo de momento.
Gracias a las aplicaciones de código abierto y a la standarización de la computación en la nube, el dinero no es un obstáculo para crear y publicar una aplicación (de hecho, puede que algún día dedique una entrada en este mismo blog a este tema).
Lo que se necesita es ciertas habilidades técnicas pero lo más importante es perseverancia y ganas de aprender y experimentar.
Así que mi motivación era simple: necesitaba un reto.
Permitidme aclarar que mi trabajo diario en la oficina como programador de aplicaciones back-end me proporciona cantidad de retos, pero necesitaba un reto fuera de la oficina.
Hay a quien le da por empezar a entrenarse para correr una maratón, pero en vez de eso, yo decidí desarrollar una aplicación para Android.
Pensé que me ayudaría a mejorar como programador, y ciertamente así está sucediendo.
Cada decisión que tomo (ya sea de diseño o de implementación), cada nueva API que tengo que usar, cada modelo de datos que creo y también cada error que cometo, forma parte de un enriquecedor proceso de aprendizaje.
Entonces, ¿en qué consiste la aplicación?
La aplicación permite compartir décimos de la Lotería Nacional, en este vídeo lo explico detalladamente: vídeo
La idea se me ocurrió escuchando como mi padre llamaba por teléfono cada Navidad a sus hermanos que viven en distintas ciudades para decirles que quería compartir con ellos la mitad de un décimo (10 euros actualmente) para el sorteo de El Gordo. Entonces mi tío, al otro lado del hilo teléfonico, tenía que apuntar el número y el importe de la "participación" que mi padre le estaba dando en una hoja de papel. A cambio mi tío compartía la mitad de un décimo para el mismo sorteo, comprado por él, con mi padre, y en este caso, mi padre es el que apuntaba el número en un papel.
Pensé que este sistema "analógico" tenía bastantes inconvenientes:
- Los papeles con el número apuntado son fáciles de perder
- El día del sorteo se ha de comprobar manualmente y uno a uno si los números han sido agraciados.
Me di cuenta que una aplicación podría hacer todo este proceso mucho más sencillo y fiable.
La aplicación ya está disponible en la Play Store, así que si quieres, instálatela en tu teléfono Android (lo siento pero no hay versión para iPhone de momento), es totalmente gratuita y no contiene publicidad.
Características técnicas
Cuando comenté la idea de crear una aplicación para Android con algunos compañeros, me recomendaron utilizar Firebase.
Me dijeron que permite crear aplicaciones de manera rápida y sencilla, que no se basa en el tradicional paradigma cliente/servidor y que reduce la complejidad al proporcionar una abstracción de los detalles relacionados con la sincronización de los datos.
La verdad que suena muy bien, y seguramente le daré una oportunidad en el futuro, pero quería realizar mi primera aplicación a la manera "tradicional", y Firebase ni siquiera permite el uso de SQL.
Quería demostarme a mí mismo que la misma tecnología que uso diariamente para desarrollar aplicaciones financieras que corren en enormes servidores, podía ser utilizada también para aplicaciones que corren en pequeños dispositivos móviles.
Además de esto, si me hubiese decidido por utilizar Firebase, mi aplicación sería altamente dependiente de esta tecnología.
Pienso que es mejor utilizar tecnologías de código abierto que no te atan a un proveedor específico.
Y aún más, el caso es que Android utiliza una base de datos embebida de tipo SQLite, por lo tanto, si tengo que usar necesariamente SQL en el cliente, ¿por qué no usar SQL en el servidor también?
Así que éstas son los principales componentes y librerías utilizadas en la aplicación:
Pues esto es todo lo que quería contar en mi primera entrada del blog en español, aún me quedan muchas cosas que contar, así que espero seguir escribiendo regularmente.
Comments
Post a Comment