v0.7 · Confronta · Cerca · 3 lingue

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 — più confronto tra paesi e ricerca degli indicatori, tutto 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
19
dataset Eurostat
8
moduli tematici
5
piattaforme, un'unica codebase
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 — 19 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, e la modalità offline non mostra mai una schermata vuota.

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.

Parla tre lingue

Inglese, polacco e ucraino in ogni schermata — e il selettore nelle Impostazioni cambia l'intera interfaccia in tempo reale, senza bisogno di riavviare. Questo stesso sito è disponibile in nove lingue.

Master-detail adattivo

Su tablet e desktop, ognuna delle otto schermate passa a un layout a due riquadri — un pannello di controllo da 320 dp accanto al contenuto — mentre sugli smartphone resta l'esatto ordine a colonna singola.

Tocca un grafico, ottieni il numero

Toccare vicino a un punto qualsiasi di un grafico a linee apre una scheda di dettaglio con paese, anno, valore formattato, unità di misura e codice del dataset — anche in modalità Indexed 100 mostra il valore assoluto reale.

Novità in v0.7

Confronta oltre i confini. Cerca qualsiasi cosa.

Le due schermate più recenti trasformano otto moduli separati in un unico atlante statistico connesso.

feature-compare

Confronta 2–5 paesi in un unico grafico

Scegli uno degli otto indicatori principali — popolazione, PIL, emissioni, esportazioni, passeggeri aerei, pernottamenti turistici, rischio di povertà, intensità di R&S — e sovrapponi fino a cinque paesi. I colori restano stabili nell'ordine di selezione, e l'interruttore Assoluto / Indexed-100 riporta ogni serie a un punto di partenza comune: il modo corretto per confrontare economie di dimensioni diverse.

feature-search

27 indicatori, un'unica barra di ricerca

Un indice integrato di tutti gli indicatori degli otto moduli — etichette, codici dei dataset, parole chiave — con un ranking a livelli. Digita «povertà», «R&S» o «emissioni» e passa direttamente alla schermata giusta; una ricerca vuota sfoglia il catalogo modulo per modulo.

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_peps01n · 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 20 moduli Gradle, protetta da oltre 600 test unitari — inclusa una suite reale per il simulatore iOS. 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 e migrazioni
  • 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 · font Inter + IBM Plex Mono inclusi
  • Otto tipi di grafico su Canvas Compose puro — senza Koalaplot
  • AdaptiveTwoPane master-detail · cambio lingua in tempo reale
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. A partire da 840 dp, ogni schermata passa a un layout master-detail a due riquadri.

Modulo Economia in esecuzione su Android
Android telefono · tablet
Piramide della popolazione in esecuzione su iPhone
iPhone · iPad
Stessa UI Compose · .dmg · .msi · .deb
Compose Desktop

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

Scarica l'app

Scarica per la tua piattaforma.

Ogni release taggata viene compilata dalla CI — un APK Android universale più gli installer nativi per desktop, allegati automaticamente alla Release su GitHub.

Android

APK universale per Android 8.0+. I metadati F-Droid sono già pronti nel repository; l'invio allo store è nella roadmap.

.apk F-Droid: previsto
GitHub Releases

Desktop

Installer nativi per macOS, Windows e Debian/Ubuntu. Attualmente non firmati — il sistema operativo chiederà conferma al primo avvio.

.dmg .msi .deb
GitHub Releases

iOS

Compila e funziona nel simulatore iPhone con dati Eurostat live. Si compila da sorgente con il progetto XcodeGen; la distribuzione su TestFlight è un obiettivo di finanziamento.

Xcode + XcodeGen TestFlight: previsto
Guida alla build

La prima release taggata è in preparazione — il workflow CI attivato dai tag (APK + tutti e tre gli installer) è già integrato e verificato. Attiva il Watch sul repository GitHub per essere avvisato non appena sarà disponibile.

Roadmap

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

Il progetto è alla versione v0.7: tutto il lavoro di prodotto della Fase 5 — panoramica, confronto, ricerca, impostazioni, localizzazione — è stato completato. La Fase 6 taglia la prima release pubblica.

Disponibile oggi

v0.7 · verificato
  • Otto moduli tematici collegati end-to-end a dati Eurostat reali
  • Dashboard di panoramica · Confronto cross-modulo · Ricerca degli indicatori
  • Impostazioni con cambio lingua in tempo reale · EN, PL, UK
  • Layout master-detail a due riquadri su tutte le otto schermate
  • Cache stale-while-revalidate · l'offline sopravvive a un volo
  • Installer desktop generati da un workflow CI di release attivato dai tag
  • Oltre 600 test unitari · inclusa una suite reale per il simulatore iOS

Prossimo: prima release pubblica

Fase 6 · in corso
  • Release taggata v0.7.0 — APK e installer allegati dalla CI
  • Chiave di firma reale per la release Android — in sostituzione del fallback di debug
  • Smoke-test su un dispositivo Android fisico · walkthrough completo su iOS
  • Invio a F-Droid — metadati fastlane già presenti nel repository

Obiettivi di finanziamento

Candidatura NLnet in fase di valutazione
  • Installer firmati e notarizzati — certificati Apple e Windows
  • Flatpak su Flathub · presenza su TestFlight / App Store
  • Selettore paese tocca-la-mappa · grafici coropletici
  • Audit di accessibilità — TalkBack e VoiceOver
  • Altre lingue UE nell'interfaccia dell'app
Open source · interesse pubblico

Sviluppato in modo indipendente. Rilasciato sotto AGPL-3.0.

Una candidatura al NLnet NGI Zero Commons Fund è in fase di valutazione 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