Proyectos

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.

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.

La portada de shobury.com en el navegador de escritorio

Recorrido

  1. ene 2023

    Primera versión

    Una idea propia, con vistas en XML.

  2. sep 2024

    Beta 0.3

    Room, Firebase Auth y sincronización.

  3. sep 2025

    Versión 1.0 en Google Play

    Edge-to-edge y lanzamiento público.

  4. sep 2025 – mar 2026

    De XML a Jetpack Compose

    Pantalla por pantalla, sin frenar las versiones.

  5. jun 2026

    Offline-first

    Modo invitado, estadísticas e importación de Steam.

  6. jul 2026

    Social y avisos

    Amigos, notificaciones push con FCM y targetSdk 36.

  7. 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.

  1. Jetpack ComposeLas pantallas
  2. ViewModelEl estado de cada pantalla, con MVVM
  3. Casos de usoLas reglas del negocio
  4. 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

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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

Ver los demás proyectos

Contacto

Para conversar sobre un proyecto, una oportunidad o algo que viste aquí.