1 año de “ePrex — Saints” en producción 🎄🧑🏻💻
Hace algo más de dos años y medio que comencé junto a mi amigo Patxi un proyecto ilusionante por el calado técnico y personal: reconstruir desde cero la aplicación ePrex, para el rezo de la Liturgia de las Horas en español, con una interfaz totalmente renovada y funcionalidades mejoradas.
¿Qué es eso de la Liturgia de las Horas? Wikipedia nos da un resumen: “La liturgia de las horas, es el conjunto de oraciones oficiales de la Iglesia católica, ortodoxa y anglicana, articuladas en torno a las horas canónicas”, en otras palabras: textos para rezar y meditar durante el día.
En soporte físico la liturgia de las horas se compone de 4 libros 📚, en digital es una sencilla aplicación 📱 con una intricada lógica (3 ciclos de lecturas que se repiten de manera cíclica, años pares/impares, precendencia de festividades y más). De esta manera facilitamos el acceso al contenido para quienes no tienen la capacidad económica o el espacio para llevarlos encima.
ℹ️ Contexto: ¿Cómo se ordena el calendario litúrgico en la Iglesia Católica? en base a la Pascua, ¿y cuándo se celebra la páscua? El cálculo de esta fecha tuvo una problemática histórica, el computus paschalis. “El primer domingo tras el plenilunio acontecido el 21 de marzo”.
El Computus (una abreviatura del latín computus paschalis) es el cálculo de la fecha de Pascua. A principios del siglo IV había en la cristiandad una gran confusión sobre cuándo había de celebrarse la Pascua cristiana o Pascua de Resurrección, con motivo del aniversario de la resurrección de Jesús de Nazaret.
Para más info del cálculo matemático: https://es.wikipedia.org/wiki/Computus#C%C3%A1lculo
Además otra de las cuestiones claves de la aplicación es cómo asociar a una fecha absoluta (ej: 25 de diciembre de 2025) una fecha de calendario litúrgico (día de Navidad). Esta es fácil porque nunca cambia, independientemente del año en que estemos, pero muchas otras del año sí. ¿Podría haber reinventado la rueda y re-programar los cálculos? Si, pero antes me aventuré a buscar alguna librería open-source, y la encontré 😀: Romcal https://github.com/romcal/romcal/. Desde entonces me hice contribuidor del proyecto para lengua española.
🗓️ Historia: Marco, un desarrollador italiano, es el autor original de la aplicación ePrex. Desarrolló la v1 y no la evolucionó más. Le presentamos el reto de rehacer la aplicación, ya que Google Play iba a dejar de disponibilizarla debido a la antiguedad y falta de actualización. Aceptó. Comienza la nueva aventura, ¡5 de julio de 2022! (más info de la cronología aquí)
Debido a la antiguedad de la aplicación y el target de versión de Android, Google Play penalizó su presencia, y comenzó una sangría de usuarios. El 25 de diciembre de 2023, tras un año y medio de desarrollo subida a producción y punto de inflexión, aquí una gráfica:
Desde entonces la base de usuarios no ha dejado de subir, en Android e iOS 📈😃.
- 📲 +3.5 Millones descargas en todas las plataformas.
- 👍🏼 +18K reviews en las stores, >4.6 puntuación
- 🌍 Usuarios en todos los países del mundo (excepto 7)
La actividad en estos dos años ha sido intensa, desarrollando funcionalidades nuevas, implementando pipelines de integración con GitHub Actions, bot que comunica las PRs al grupo de desarrollo de Telegram y mucho más. Hace unos meses desarrolladores voluntarios 🫶🏼 se han sumado para colaborar en la evolución de ePrex-Saints.
¿Cómo está desarrollada la aplicación?
- Front mobile: Vue + Ionic + Capacitor
- DB: JSONs! (esto da para explicar otro post)
- Back: N/A (por el momento), ¡la aplicación funciona totalmente offline! Ahí está su punto diferencial respecto a otras en el mercado
- Data: Python 🐍, procesos de compresión de textos, eliminación de duplicados, construcción de BDs en ficheros JSON…
Para probar las funcionalidades desplegué la aplicación de manera privada en Vercel, de esta manera se puede tener una previsualización de la app por cada rama desarrollada, para testear en una PR, etc. Por un tema de costes lo he migrado a CloudFlare, con un tier gratuito más potente y las mismas funcionalidades que necesitaba. Próximamente hablaré de esta migración y qué servicios utilizo de CF, merece mucho la pena y el ahorro, moverse de otros proveedores a CF.
Un hito de la aplicación fue optimizar el espacio, eliminando duplicados de textos de 4 libros, que se repiten potencialmente durante ciclos A, B y C (cíclicamente). Ocupación de la BD antes: 40,7MB; y ahora: 13,4MB. Una reducción del 67% del espacio 🔥💽
Ha sido (y es) muy gratificante trabajar para mantener y evolucionar una aplicación tan utilizada por todo el mundo, mientras escribo estas líneas reviso Google Analytics, y veo 1.803 usuarios conectados a la aplicación 🙏🏼
La reconstrucción de ePrex vio la luz justo hoy, 25 de diciembre, hace un año: ePrex — Saints, ¡feliz Navidad!
Para más info: https://saints.es/