Fase 4 · 8 moduli con dati reali

I dati Eurostat,
su ogni schermo.

Un client mobile e desktop open-source per le API pubbliche di Eurostat. Otto moduli tematici — economia, popolazione, ambiente, commercio, trasporti, turismo, sociale, scienza — su un'unica codebase Kotlin Multiplatform.

🇪🇺Client open-source indipendente di terze parti. Non affiliato a Eurostat né alla Commissione europea.

Panoramica degli otto moduli nell'app EU Stats
18
dataset Eurostat
8
moduli tematici
444
test unitari superati
AGPL-3.0
licenza open-source
Cosa fa

Dati europei pubblici, trattati come un prodotto di prima classe.

Interfaccia editoriale e sobria. Cache stale-while-revalidate. Chiamate API reali, nessun mock. Progettato per cittadini, giornalisti e studenti che vogliono esplorare le statistiche europee senza dipendere da un singolo fornitore.

Dati da API pubblica reale

Tutti gli otto moduli mostrano dati live dall'API ufficiale di disseminazione Eurostat — 18 dataset in totale. Nessun mock predefinito; nessun database di esempio.

Cache stale-while-revalidate

Cache SQLDelight con TTL di 12 ore. I dati in cache appaiono istantaneamente; l'aggiornamento di rete avviene in background con un banner discreto; la modalità offline non mostra mai una schermata vuota.

Otto moduli tematici

Economia, Popolazione, Ambiente, Commercio, Trasporti, Turismo, Sociale, Scienza. Ciascuno gestisce il proprio dataset, il proprio selettore e un grafico caratteristico adatto alla forma dei dati.

Grafici su Compose Canvas puro

Otto tipi di grafico — a linee, a barre impilate, a piramide, heatmap, a barre divergenti, radar, small-multiples, multi-linea evidenziato — disegnati su un Canvas Compose senza dipendenze di rendering di terze parti.

Multipiattaforma dal primo giorno

Telefono e tablet Android, iPhone e iPad, e un .jar Compose Desktop autonomo per macOS, Linux e Windows — tutto da un'unica codebase Kotlin condivisa.

Selettore dell'anno su ogni schermata

Introdotto di recente: scegli qualsiasi anno storico e il titolo con le statistiche si aggiorna istantaneamente, senza alcuna richiesta di rete. Il grafico mantiene la serie completa; l'anno guida solo i valori in primo piano.

Otto moduli

Apri una scheda. Scegli un paese. Scorri gli anni.

Ogni modulo ha il proprio dataset, il proprio selettore e un grafico caratteristico adatto alla forma dei dati. Le descrizioni sono tratte direttamente dal README del progetto.

Modulo Popolazione — trascina il cursore dell'anno per trasformare la piramide

Popolazione

demo_pjangroup · 18 coorti · M/F/T

Una piramide demografica per 18 coorti di età (fasce quinquennali, da Y_LT5 a Y_GE85). Il titolo mostra la popolazione totale con la variazione anno su anno. Un controllo segmentato a tre opzioni (Totale / Uomini / Donne) attenua il lato opposto della piramide quando si seleziona un sesso. Un cursore temporale scorre gli anni disponibili; una riga di chip nazionali cambia il paese attivo senza effettuare nuove richieste.

grafico a piramide cursore anni segmentato M/F/T
Modulo Economia — PIL, inflazione HICP e deficit

Economia

nama_10_gdp · prc_hicp_aind · gov_10dd_edpt1

Tre indicatori macroeconomici — PIL a prezzi correnti (miliardi di EUR), indice di inflazione HICP (2015 = 100) e indebitamento netto/accreditamento netto della pubblica amministrazione in % del PIL — visualizzati come grafico a linee multi-paese. Un controllo segmentato seleziona la metrica attiva; le due metriche inattive restano visibili come riquadri statistici secondari attenuati. Un cursore a doppio indice riduce l'intervallo temporale del grafico; un menu a tendina separato sceglie l'anno per il titolo.

grafico multi-linea metrica segmentata cursore a doppio indice
Modulo Ambiente — GHG, energia, indice climatico SDG

Ambiente

env_air_gge · nrg_bal_c · sdg_13_10

Tre dataset climatici selezionabili tramite menu a tendina: emissioni di gas serra in Mt CO₂-eq, consumo finale di energia in ktoe e indice climatico SDG 13 con base 1990 = 100. Quando sono attivi GHG o Energia, una riga di chip filtra per settore (TOTALE / TRASPORTI / INDUSTRIA). Il grafico principale è una linea che confronta il paese selezionato con un paese di riferimento; due riquadri statistici mostrano le altre due metriche per lo stesso anno.

menu metrica chip settore linea comparativa
Modulo Commercio — barre divergenti per esportazioni, importazioni, saldo

Commercio

ext_lt_intratrd

Flussi commerciali di beni intra-UE — esportazioni, importazioni e saldo commerciale in miliardi di EUR. Il grafico principale è a barre divergenti che copre gli otto anni più recenti, con le esportazioni a destra e le importazioni a sinistra. Tre schede sottolineate (Esportazioni / Importazioni / Saldo) evidenziano la direzione rilevante. Due riquadri statistici compatti mostrano i dati del paese selezionato per l'anno scelto.

barre divergenti schede sottolineate menu anno
Modulo Trasporti — small multiples di passeggeri su strada e aerei

Trasporti

road_pa_buscoa · avia_paoc

Volumi di passeggeri su strada e aerei presentati come grafici a linee small-multiple affiancati. I dati stradali (miliardi di passeggeri) e aerei (milioni di passeggeri) sono scalati indipendentemente per pannello. Un toggle a pill (STRADA / ARIA / TUTTI) controlla quali pannelli sono visibili. Un interruttore a scala logaritmica comprime l'asse per paesi con magnitudini molto diverse. Tre riquadri statistici riassumono strada, aria e un riquadro "mare: n/d" che spiega onestamente l'esclusione del dataset basato sui porti.

small multiples toggle a pill scala logaritmica
Modulo Turismo — barre impilate di pernottamenti e heatmap stagionale

Turismo

tour_occ_ninat · tour_occ_nim

Pernottamenti in strutture ricettive — domestici, stranieri e totali — visualizzati come grafico a barre impilate per i nove anni più recenti. Una riga di chip controlla quale metrica guida il valore in primo piano. Sotto le barre impilate, una heatmap stagionale mensile (celle = mese × anno) mostra la distribuzione dei pernottamenti nel corso dell'anno.

barre impilate riga di chip heatmap stagionale
Modulo Sociale — i riquadri KPI guidano un grafico a linee evidenziato

Sociale

ilc_li02 · ilc_peps01 · hlth_silc_01

Tre indicatori percentuali di benessere tratti dalle indagini EU-SILC: tasso di rischio di povertà, tasso di rischio di povertà o esclusione sociale e quota di popolazione che dichiara una salute autopercepita molto buona. I tre indicatori sono tracciati insieme in un grafico a linee evidenziate; toccare un riquadro KPI sposta l'enfasi su quella serie e aggiorna il valore in primo piano.

multi-linea evidenziato selettore riquadro KPI cursore anno
Modulo Scienza — grafico radar di R&S, uso di internet e istruzione terziaria

Scienza

rd_e_gerdtot · isoc_ci_ifp_iu · edat_lfse_03

Tre indicatori di innovazione — spesa in R&S in % del PIL, tasso di utilizzo di internet e livello di istruzione terziaria tra i 25–64 anni — visualizzati contemporaneamente su un grafico radar. Il radar sovrappone il paese attivo a un paese di riferimento (con preferenza per DE, poi FR, poi EU27). Tre sparkline mostrano sempre il trend completo. Non c'è selettore di metrica; il radar presenta tutti e tre gli assi contemporaneamente.

grafico radar sovrapposizione peer tre sparkline
Sotto il cofano

Scelte conservative e consolidate — di proposito.

Clean Architecture distribuita su 17 moduli Gradle. Ogni livello ha un contratto sealed. Nessun operatore !! da nessuna parte; nessun grafico di terze parti; nessuna perdita di dispatcher.

Architettura

  • Clean Architecture multi-modulo — datadomainui
  • Contratti Result<T> · AppError · DispatcherProvider
  • Decompose per navigazione, componenti e ciclo di vita
  • Koin per l'iniezione delle dipendenze
  • Pattern repository stale-while-revalidate

Dati

  • Ktor Client — engine Darwin su iOS, OkHttp su Android
  • kotlinx.serialization per JSON e blob cache
  • Schemi SQLDelight con DAO tipizzati
  • Parser JSON-stat 2.0 scritto a mano in core-jsonstat
  • Coroutines + Flow + StateFlow ovunque

Interfaccia

  • Compose Multiplatform — Android, iOS, Desktop
  • Token di design object Euro — colori, tipografia, spaziatura, forme
  • ~25 composable riutilizzabili in core-ui
  • Otto tipi di grafico su Canvas Compose puro — senza Koalaplot
  • kotlin.test e Turbine per test unitari e di flusso
Tre fattori di forma

Telefono, tablet, desktop — lo stesso codice Compose.

Un giornalista al desktop, uno studente sul tablet, un cittadino sullo smartphone — gli stessi dati, gli stessi componenti, lo stesso rendering. Già implementato a livello infrastrutturale.

Android
Android telefono · tablet
iOS
iPhone · iPad
macOS · Linux · Windows
Compose Desktop

Un'unica codebase Kotlin. Interfaccia Compose Multiplatform. Widget nativi su ogni piattaforma.

Roadmap

Onesti su ciò che è disponibile, su ciò che viene dopo, su ciò che richiede finanziamenti.

Il progetto è alla Fase 4: tutti gli otto moduli mostrano dati reali su Android. La Fase 5 completa la shell — panoramica, selettore paese, impostazioni — e la Fase 6 taglia la prima release.

Disponibile oggi

Fase 4 · verificato
  • Otto moduli tematici collegati a dati Eurostat reali
  • Cache stale-while-revalidate · l'offline sopravvive a un volo
  • Selettore dell'anno in ogni modulo · il titolo si aggiorna senza nuove richieste
  • Otto tipi di grafico su Canvas Compose puro
  • APK Android compilato · .jar Compose Desktop funzionante su macOS/Linux/Windows
  • Rilasciato sotto AGPL-3.0

Prossima tappa (M1)

Fase 5 · in corso
  • Schermata di panoramica — griglia di riquadri di accesso
  • Selettore paese — lista con ricerca e tocco sulla mappa
  • Test di controllo su iOS in simulatore · verifica delle otto schede
  • Persistenza impostazioni · tema, paese predefinito, lingua
  • Rendering reale delle bandiere · font Inter incluso

Obiettivi di finanziamento (M2 · M3)

Fase 6 · candidato NLnet
  • Localizzazione · traduzioni in polacco e ucraino
  • Installer nativi · .dmg, .msi, .deb, Flatpak
  • Confronto multi-paese · sovrapposizione o small-multiples
  • Ricerca trasversale · indice degli indicatori su tutti gli otto moduli
  • Layout master-detail per schermi larghi, tablet e desktop
Open source · interesse pubblico

Sviluppato in modo indipendente. Rilasciato sotto AGPL-3.0.

Attualmente in fase di valutazione per una candidatura alla open-call NLnet, per finanziare le prossime tappe. Cittadini, giornalisti e studenti dovrebbero poter esplorare i dati pubblici europei senza dipendere da un singolo fornitore — su qualsiasi dispositivo già posseduto.

Leggi la roadmap