En la anterior entrada del blog hablé un poco de mis comienzos con la programación, allá por el año 2004. Hoy, voy a seguir con la temática «comienzos» pero esta vez os voy a hablar de un proyecto reciente, lanzado en mayo 2022, el cual se trata de la primera aplicación Android que desarrollé y publiqué en la Play Store, todo ello para incluirla en mi portfolio como programador.
Esta aplicación no es otra que ELO Chess Calculator, la cual habéis podido ver en la parte de portfolio de la página principal. Os quiero hablar un poco sobre cómo hice esta aplicación, cuál fue el objetivo a la hora de desarrollarla y qué cosas aprendí con ella.

Name: ELO Chess Calculator
Technologies: Kotlin, Android Studio and ORM Room
Link: Play Store
Started: April 28, 2022
Published (version 1.0): May 15, 2022
Contexto de la aplicación
Para entender la idea y creación de esta aplicación, hay que entender también el contexto en el que me encontraba cuando empecé a desarrollarla.
Era abril de 2022 y yo acababa de dejar mi trabajo en España para mudarme a Francia y buscar allí trabajo como desarrollador tras acabar un Grado Superior en Desarrollo de Aplicaciones Multiplataforma. Estaba en una situación un tanto complicada, ya que tenía unos ahorros que no iban a durar unos meses y me urgía encontrar un trabajo pero… mi experiencia en el ámbito del desarrollo se limitaba a los dos años que estuve como freelance de desarrollo web y a mis estudios, por lo que tampoco era mucha.
Así que decidí aprovechar el tiempo libre que tenía mientras mandaba currículums para desarrollar proyectos sencillos para añadir a mi curriculum y portfolio. Creo que esto es algo sumamente importante cuando eres un junior en busca de trabajo y no tienes experiencia: formar un portfolio con el que de muestres lo que sabes hacer a través de proyectos sencillos.
No hace falta que estos proyectos sean complejos, es más, no es deseable. Si, como junior, empiezas un proyecto complejo, hay altas probabilidades de que no lo acabes y no puedas enseñarlo o lanzarlo. Esto es algo que nos pasa mucho al principio y yo creo que la gran mayoría hemos caído en este error. Así que piensa en proyectos sencillos, que puedas realizar en un par de meses como mucho. Además tienes que tener en cuenta que con estos proyectos sencillos te saldrán dificultades y no serán tan simples o rápidos de desarrollar como creías.
Decidido a crear un proyecto más para mi portfolio, decidí que fuera una aplicación Android por los siguientes motivos:
- Había aprendido Kotlin para el desarrollo Android en el Grado Superior.
- Ya tenía un proyecto JAVA + SQL en mi portfolio.
- Ya tenía experiencia y proyectos web para enseñar.
- Y me hacía ilusión crear y publicar en la Play Store una aplicación movil.
Decidido esto, solo quedaba decidir la temática: ¿Qué desarrollar y que no fuera muy complejo? Una app sencilla para demostrar que sabía hacer algo en Android y que funcionaba.
ELO y Ajedrez – La temática
Elegir la temática fue bastante simple porque tenía esta idea en la cabeza desde hace bastante tiempo. Por si no lo sabéis, yo llevo jugando al ajedrez desde 1999 que aprendí, y más o menos desde el 2002 a nivel federado.
En el mundo del ajedrez hay un rating oficial el cual mide tu fuerza de forma teórica y va subiendo y bajando según juegas partidas de torneos válidos. Es un poco como el mundo ranked de los videojuegos, ya que además comparte el mismo nombre esta puntuación: ELO. Si queréis saber más sobre este sistema de rating, podéis consultarlo en la Wikipedia.

La cosa es que yo siempre tuve bastante curiosidad cuando jugaba estas partidas cuánto rating podía subir o bajar según el rival y mi resultado. Al principio calcularlo no era fácil pues debías conocer la fórmula matemática, no había webs ni aplicaciones para calcularlo. La única forma que había prácticamente era la de esperar a que la FIDE (Fédération International des Échecs) sacara su lista mensual con las actualizaciones del rating para todo el mundo.
Ya, sobre 2009, creé una aplicación con PHP y HTML para realizar este cálculo, por lo que conocía la forma de hacerlo, así que me decidí a hacerlo en móvil, para que fuera mucho más sencillo y rápido de calcular. Para que pudieras hacerlo inmediatamente después de una partida en un torneo real.
A nivel de competencia/innovación, ya había varias aplicaciones para realizar estos cálculos, pero mi objetivo no era otro que mi portfolio.
Tecnologías utilizadas para el desarrollo
Para el desarrollo de la aplicación básicamente usé:
- Android Studio: me parece un IDE muy potente para el desarrollo de apps Android, no hace falta buscarse alternativas.
- Kotlin: lenguaje de programación nativo para el desarrollo de aplicaciones android, además de tener más funcionalidades hoy en día. Me parece bastante fácil y sencillo de aprender, comparado con JAVA.
- SQLite: para almacenar la información del ELO del usuario simplemente usé una tabla en local con SQLite. Almacenando la información básica del usuario y el ELO introducido por él, los cambios de ELO tras un cálculo se pueden guardar también en la base de datos, actualizando el ELO del usuario.
- Room: para el trabajo con la base de datos, utilicé el ORM Room. Mucho más sencillo trabajar con la BBDD a través de objetos.
Como podéis ver, la aplicación iba a ser bastante sencilla y no iba a utilizar nada del otro mundo. Lo más complicado y la gracia de la aplicación era el manejo de la base de datos con el ORM y pasar información entre activities.

Por que sí, tenía que pasar información (ELO actual del usuario, resultado, factor K…) entre una activity y otra para completar la funcionalidad de la aplicación. Para ello, además de obtener información de la BBDD, a través de los extras, podía pasar la información de una activity a otra.
Una cosa que tuve que hacer es una Splash Screen (primera activitydonde se muestra el logo del creador en mi caso) donde ya recuperaba toda la información del usuario de la base de datos.
También user el viewbinding para interactuar con los botones. Antiguamente se usaba el findbyid, pero hoy en día es normal el uso del viewbinding en el desarrollo con Android.
Conclusiones
Aunque no se trata de una aplicación muy compleja ni que vaya a tener muchas descargas, pude aprender varias cosas (o terminar de dominar un poquito más):
- Publicar una app en Play Store y lidiar con todo este proceso (daría para una entrada)
- Insertar publicidad en una app Android con Admob.
- Perfeccionar el trabajo con las constraint layouts.
- Trabajar con el ORM Room
Y, sobre todo, tener una aplicación funcional en mi portfolio de desarrollador.
¡Espero que te haya gustado la entrada! ¿Cuál fue el primer proyecto que incluiste en tu porfolio?