Proyecto principal
ZIBE
Aplicación Android de mensajería en tiempo real usada como proyecto principal del portfolio para demostrar modernización incremental, arquitectura por capas y calidad técnica en un repo público.

title: "ZIBE" summary: "Aplicación Android de mensajería en tiempo real usada como proyecto principal del portfolio para demostrar modernización incremental, arquitectura por capas y calidad técnica en un repo público." language: "es" published: true featured: true year: "2020 - actualidad" role: "Desarrollo Android" coverImage: "/images/projects/demo-zibe-gemini.png" coverImageAlt: "Capturas de ZIBE mostrando login, listado de chats y conversación" githubRepo: "Zibete/Zibe" githubUrl: "https://github.com/Zibete/Zibe" githubFeatured: true stack:
- "Kotlin"
- "Jetpack Compose"
- "Material 3"
- "MVVM"
- "Firebase"
- "Hilt" tags:
- "Android"
- "Arquitectura"
- "Compose"
- "Firebase"
- "CI"
Qué es
ZIBE es una app Android de mensajería orientada a chats 1 a 1 y grupos. La uso como proyecto principal del portfolio porque concentra un tipo de problema completo: tiempo real, autenticación, notificaciones, multimedia, persistencia y evolución de arquitectura sin partir de cero.
Problema que resuelve
El proyecto ataca dos frentes al mismo tiempo:
- ofrecer una experiencia de mensajería moderna sobre Firebase, con conversaciones, grupos, perfiles y push notifications
- demostrar cómo modernizar una base Android nacida con XML y Activities hacia Kotlin, Jetpack Compose y una estructura más mantenible
Solución implementada
La solución combina una app Android real con una modernización progresiva y pública del código. En lugar de rehacer todo desde cero, ZIBE convive con capas legacy mientras migra hacia un stack más actual, con foco en claridad de responsabilidades, seguridad y capacidad de evolución.
Stack principal
- Kotlin
- Jetpack Compose + Material 3
- MVVM con
StateFlowySharedFlow - Hilt para dependency injection
- Firebase Auth, Realtime Database, Storage, FCM y App Check
- DataStore para persistencia local de configuración
- Room y utilidades complementarias según el caso
Arquitectura
La arquitectura sigue un flujo claro de responsabilidades:
- UI
- ViewModel
- Domain use cases
- Data repositories
- Firebase y DataStore
La modularización visible hoy separa app, core, domain y data, con documentación técnica adicional en docs/. También existe una carpeta functions/ reservada para automatizaciones y lógica de soporte del lado backend cuando hace falta complementar el flujo principal.
Funcionalidades principales
- autenticación con Google y Facebook
- chat 1 a 1 y grupal en tiempo real
- notificaciones push con FCM
- perfiles, favoritos y estado de usuario
- envío de imágenes y audio en conversaciones
- onboarding, búsqueda y ajustes base de la app
Estado actual
Al 13 de marzo de 2026, el repo muestra una etapa activa de modernización y mantenimiento. El proyecto arranca en 2020 y desde octubre de 2025 avanza con una migración sostenida hacia Kotlin, Compose, Material 3 y mejores prácticas de build, seguridad y organización interna.
No lo presento como producto terminado, sino como una base viva que ya evidencia criterio de evolución, disciplina técnica y continuidad.
Calidad técnica y señales de madurez
- pipeline de GitHub Actions con build, lint, unit tests y compilación de release
- tests para reglas de Firebase usando emuladores
- documentación específica de arquitectura, CI y esquema de Firebase
- archivos de ejemplo para credenciales y configuración segura en repo público
- estructura modular y decisiones orientadas a mantenimiento incremental
- commits recientes enfocados en compatibilidad, tooling y estabilidad del build
Valor profesional
ZIBE me permite mostrar algo más útil que una demo aislada:
- capacidad para trabajar sobre Android moderno sin ignorar deuda técnica previa
- criterio para mejorar arquitectura sin romper la evolución del producto
- manejo de integraciones end-to-end con Firebase
- preocupación por calidad pública del repo, seguridad y automatización del build
- equilibrio entre señal técnica profunda y entendimiento del valor funcional