Kotlin
100% Kotlin, sin Java. Lenguaje moderno, conciso y type-safe en toda la base de código.
Conectamos músicos, bandas, salas de conciertos y fans en una sola plataforma diseñada para que la escena musical local crezca.
100% Kotlin, sin Java. Lenguaje moderno, conciso y type-safe en toda la base de código.
UI declarativa, reactiva y completamente nativa. Sin XML.
17 módulos de inyección de dependencias.
StateFlow, SharedFlow y callbackFlow para tiempo real.
Auth, Firestore, Storage, Analytics y Crashlytics integrados de forma desacoplada vía interfaces.
Rutas tipadas con @Serializable y deep links desde push notifications.
Tres capas con responsabilidades estrictamente separadas. La UI Layer solo pinta estados y lanza eventos. La Domain Layer define modelos, interfaces de repositorio y use cases. La Data Layer implementa los repositorios contra Firebase, encapsulando todos los detalles del SDK detrás de tipos limpios (`Result<T>`, `Flow<T>`).
Pantallas declarativas y ViewModels @HiltViewModel con StateFlow<UiState> y patrón sealed class.
Contratos puros sin dependencia de Firebase. 16 repository interfaces, 10 use cases.
try/catch → Result<T>, callbackFlow para snapshot listeners, batches atómicos en Firestore.
Bandas y salas comparten un sistema de tres roles que define qué puede hacer cada miembro del equipo. Los permisos se materializan tanto en la UI como en las Security Rules de Firestore.
Estructura · Contenido · Miembros · Eliminar org.
Control total. El fundador de la banda o el dueño de la sala.
Contenido · Editar info · Posts · Eventos.
No gestiona miembros ni borra la entidad. Manager o técnico de sonido.
Lectura · Chat interno.
Aparece en el staff y accede al chat. Sin permisos de edición.
La defensa se aplica antes de tocar la base de datos. Las reglas verifican identidad, autoría y campos estructurales protegidos en cada operación. Auto-promoción a admin, suplantación de identidad y escalada de privilegios quedan bloqueadas a nivel de Firestore.
Todo acceso requiere un JWT válido. El uid del token es la identidad base de toda regla.
Denegación total por defecto. Verificación de autoría e identidad en cada escritura. Campos estructurales protegidos.
Operaciones privilegiadas con Admin SDK fuera del alcance de las reglas: aprobaciones, soft-delete diferido, isPremium.
Caso de estudio
Una arquitectura pensada para crecer sin romperse.
Volver a proyectos