YCILT (Your City Is Listening To) รจ un'applicazione Android sviluppata in Kotlin con Jetpack Compose per il corso di Laboratorio di Applicazioni Mobili. Permette agli utenti di scoprire la musica dal vivo intorno a loro su una mappa interattiva, registrare e caricare audio, ed esplorare un'analisi musicale dettagliata.
Realizzata con architettura MVVM, WorkManager per i task in background, Geocoder per il geocoding inverso, e compatibile con SDK 33+ (Android 13+).
Il cuore di YCILT e' una mappa interattiva Google Maps. Ogni marker rappresenta una registrazione audio pubblica caricata dagli utenti nella zona. I marker si aggiornano ogni 5 secondi per mantenere la mappa sempre attuale. Tocca un marker per visualizzare le informazioni dettagliate sulla registrazione.

Cattura i suoni intorno a te con il registratore integrato. Una volta salvato, l'audio viene messo in coda per l'upload tramite un Worker in background che attende una connessione Wi-Fi โ cosi' non sprechi dati mobili. Una notifica ti tiene informato sullo stato dell'upload.

Accedi alla tua libreria personale dal drawer laterale. Ogni registrazione mostra nome file, data e durata. Toccane una per riprodurla, vedere dove e' stata registrata (tramite geocoding inverso), cambiarne la privacy tra pubblica e privata, o eliminarla.


Il backend analizza ogni registrazione caricata, estraendo metadati dettagliati: BPM, danceability, loudness, piu' le 5 opzioni piu' probabili per mood, genere e strumenti. Questo trasforma un semplice file audio in un'impronta musicale completa.

Gli utenti si registrano e accedono con un'interfaccia pulita e minimale. Il token di autenticazione e' salvato nelle SharedPreferences, cosi' resti loggato tra una sessione e l'altra. Un drawer laterale offre accesso rapido ai tuoi upload, logout e cancellazione dell'account.

