Audio sin API de licencias musicales
Los fragmentos salen de previews públicas de 30 segundos resueltas en un catálogo curado, así el juego no necesita login en ningún servicio de streaming.
SongSpot es un quiz musical: escuchas un fragmento minúsculo y adivinas el tema. Si fallas o pasas, el fragmento crece: 0,5, 1, 3, 8 y 15 segundos. Incluye un catálogo de más de 700 éxitos que crece cada semana, un Reto Diario global, retos entre amigos por enlace y rankings por género, sobre un backend serverless en Firebase.
Un cliente SwiftUI + MVVM con un backend en TypeScript sobre Firebase. La app reproduce previews de 30 segundos con AVPlayer y recorta las ventanas del fragmento en el cliente; el backend cura el catálogo y gestiona la parte competitiva.
Vistas SwiftUI y view models, con una veintena de servicios especializados (reproductor, catálogo, reto diario, ranking, escudos de racha, tienda, notificaciones). String Catalogs para EN/ES.
Expansión y resolución del catálogo, descubrimiento de candidatas con Last.fm, generación del reto diario, rotación semanal de género, rankings, nombres de usuario, validación de compras y mantenimiento semanal.
Cloud Firestore con reglas de seguridad e índices; Firebase Auth con Apple y Google; App Check para proteger el backend.
Páginas estáticas para los enlaces de reto, soporte, privacidad y términos, desplegadas junto al backend.
songspot| Package | Version | Source |
|---|---|---|
| abseil-cpp-binary | 1.2024072200.0 | SPM |
| app-check | 11.3.1 | SPM |
| appauth-ios | 3.0.0 | SPM |
| firebase-ios-sdk | 12.19.1 | SPM |
| google-ads-on-device-conversion-ios-sdk | 3.7.0 | SPM |
| googleappmeasurement | 12.19.0 | SPM |
| googledatatransport | 10.1.1 | SPM |
| googlesignin-ios | 10.0.0 | SPM |
| googleutilities | 8.1.3 | SPM |
| grpc-binary | 1.69.1 | SPM |
| gtm-session-fetcher | 5.3.1 | SPM |
| gtmappauth | 6.0.0 | SPM |
| interop-ios-for-google-sdks | 101.0.0 | SPM |
| leveldb | 1.22.5 | SPM |
| nanopb | 2.30910.1 | SPM |
| promises | 2.4.1 | SPM |
Stack detectado automáticamente del repositorio el 27 oct 2026.
Los fragmentos salen de previews públicas de 30 segundos resueltas en un catálogo curado, así el juego no necesita login en ningún servicio de streaming.
Funciones programadas publican el Reto Diario y rotan el género semanal para todos los jugadores a la vez.
Los retos entre amigos son deep links autocontenidos; el backend solo se usa para los rankings.