Shobury
Un tracker de videojuegos para Android y la web. Lo concebí, lo diseñé, lo programé y lo publico por mi cuenta desde 2023.
- Rol
- Todo: producto, diseño, desarrollo y publicación
- Plataformas
- Android con Kotlin y Compose, y web con Next.js
- Estado
- En Google Play, versión 1.3.1
- Desde
- 2023
Qué es
Shobury te ayuda a llevar la cuenta de lo que juegas: lo registras, lo ordenas por estado y descubres qué jugar después. La app Android y la web comparten la misma biblioteca, así que lo que marcas en el teléfono aparece en el navegador.
Desde abril de 2024, el repositorio Android suma 313 commits y la app pasó de la 1.0.0 a la 1.3.1.
Pantallas
Capturas de la versión actual, en modo invitado con una biblioteca de prueba.
La web
shobury.com está hecha en Next.js y lee la misma base de Firebase que la app. La biblioteca es una sola: lo que marcas en el teléfono aparece en el navegador.


Recorrido
ene 2023
Primera versión
Una idea propia, con vistas en XML.
sep 2024
Beta 0.3
Room, Firebase Auth y sincronización.
sep 2025
Versión 1.0 en Google Play
Edge-to-edge y lanzamiento público.
sep 2025 – mar 2026
De XML a Jetpack Compose
Pantalla por pantalla, sin frenar las versiones.
jun 2026
Offline-first
Modo invitado, estadísticas e importación de Steam.
jul 2026
Social y avisos
Amigos, notificaciones push con FCM y targetSdk 36.
oct 2026
Shobury 1.3.1
Nueva marca y la versión de hoy.
Arquitectura
Clean Architecture con Hilt inyectando cada capa. La interfaz nunca habla con la red directamente.
- Jetpack ComposeLas pantallas
- ViewModelEl estado de cada pantalla, con MVVM
- Casos de usoLas reglas del negocio
- RepositorioUna sola ruta de escritura
- RoomDatos locales y modo invitado
- Firebase Realtime DatabaseLa misma biblioteca que usa shobury.com
- Cloud Function e IGDBEl token fuera de la app y el catálogo de juegos
Decisiones
Una sola ruta de escritura
Todo cambio en la biblioteca pasa por una función del repositorio que escribe en Room y en Firebase a la vez, o borra de ambos. Antes, una pantalla escribía directo en la nube: sin red, el cambio se perdía y quedaban registros fantasma.
Offline-first con Room
Room es la fuente local, con el esquema en la versión 7 y cada migración escrita a mano. El modo invitado vive solo en el teléfono y, al crear la cuenta, la biblioteca sube a Firebase.
El token de IGDB fuera de la app
La app le pide el token a una Cloud Function HTTP, y una función programada lo renueva el 1 y el 16 de cada mes. Así ningún secreto viaja en el APK y la app no se cae cuando el token vence.
De XML a Compose sin frenar
Entre septiembre de 2025 y marzo de 2026 migré pantalla por pantalla: lista, navegación, Explorar, Mi lista, Perfil y autenticación, mientras seguían saliendo versiones 1.0.x y 1.1.x.
Paridad con la web
La regla que decide si un juego está en tu biblioteca existe igual en Kotlin y en TypeScript, y los eventos de PostHog son los mismos en ambas plataformas: lo que ves en el teléfono es lo que ves en el navegador.
Con qué está hecha
- Android
- Kotlin, Jetpack Compose, MVVM, Clean Architecture, Hilt, Room, Retrofit, OkHttp, Coroutines, Flow, Navigation, Coil
- Nube
- Firebase Auth, Realtime Database, Cloud Functions, Remote Config, Crashlytics, FCM
- Web
- Next.js, Tailwind y la misma base de Firebase
- Producto
- API de IGDB, PostHog, importación de la biblioteca de Steam
Contacto
Para conversar sobre un proyecto, una oportunidad o algo que viste aquí.






