Phase 4 · 8 modules diffusent des données réelles

Les données Eurostat,
sur tous vos écrans.

Un client open source pour l'API publique Eurostat — mobile et bureau. Huit modules thématiques — économie, population, environnement, commerce, transport, tourisme, social, science — dans une seule base de code Kotlin Multiplatform.

🇪🇺Client open source indépendant tiers. Sans affiliation avec Eurostat ou la Commission européenne.

Aperçu des huit modules de l'application EU Stats
18
jeux de données Eurostat
8
modules thématiques
444
tests unitaires réussis
AGPL-3.0
licence open source
Ce que fait l'application

Des données européennes publiques, traitées comme un produit de première classe.

Interface calme et éditoriale. Mise en cache stale-while-revalidate. Vrais appels API, sans données fictives. Conçue pour les citoyens, les journalistes et les étudiants qui souhaitent explorer les statistiques européennes sans dépendre d'un fournisseur unique.

Données réelles via l'API publique

Les huit modules diffusent des données en direct depuis l'API officielle de diffusion Eurostat — 18 jeux de données au total. Aucune donnée fictive codée en dur ; aucune base de données de démonstration.

Mise en cache stale-while-revalidate

Cache SQLDelight avec une durée de vie de 12 heures. Les données en cache s'affichent instantanément, l'actualisation réseau se fait en arrière-plan, et hors connexion ne signifie jamais un écran vide.

Huit modules thématiques

Économie, population, environnement, commerce, transport, tourisme, social, science. Chaque module possède son jeu de données, son mode de sélection et un graphique signature adapté à la forme des données.

Graphiques Compose Canvas purs

Huit types de graphiques — courbe, barres empilées, pyramide, carte thermique, barres divergentes, radar, petits multiples, multilignes surlignées — dessinés sur un Canvas Compose sans dépendance de rendu tierce.

Multiplateforme dès le premier jour

Téléphone & tablette Android, iPhone & iPad, et un .jar Compose Desktop autonome pour macOS, Linux et Windows — le tout depuis une seule base de code Kotlin partagée.

Sélecteur d'année sur chaque écran

Récemment ajouté : choisissez n'importe quelle année historique et le titre ainsi que les tuiles de statistiques se mettent à jour instantanément — sans aller-retour réseau. Le graphique conserve la série complète ; l'année pilote uniquement l'affichage.

Huit modules

Ouvrez un onglet. Choisissez un pays. Faites défiler les années.

Chaque module possède un jeu de données, un mode de sélection et un graphique signature adapté à la forme des données. Les descriptions sont tirées directement du README du projet.

Module Population — glisser le curseur d'année pour transformer la pyramide

Population

demo_pjangroup · 18 cohortes · H/F/T

Une pyramide démographique pour 18 cohortes d'âge (tranches de cinq ans, Y_LT5 à Y_GE85). Le titre affiche la population totale avec la variation annuelle. Un contrôle segmenté à trois options (Total / Hommes / Femmes) estompe le côté opposé de la pyramide lors de la sélection d'un sexe. Un curseur d'année parcourt les années disponibles ; une rangée de puces pays change le pays actif sans nouveau téléchargement.

pyramide des âges curseur d'année segmenté H/F/T
Module Économie — PIB, inflation IPCH et déficit

Économie

nama_10_gdp · prc_hicp_aind · gov_10dd_edpt1

Trois indicateurs macroéconomiques — PIB aux prix courants (milliards EUR), indice d'inflation IPCH (2015 = 100) et capacité/besoin de financement des administrations publiques en % du PIB — affichés sous forme de graphique multilignes multi-pays. Un contrôle segmenté bascule l'indicateur actif ; les deux indicateurs inactifs restent visibles sous forme de tuiles secondaires estompées. Un curseur double à deux poignées limite la plage temporelle du graphique ; un menu déroulant d'année distinct sélectionne l'année utilisée par le titre.

graphique multilignes segmenté par indicateur curseur double
Module Environnement — GES, énergie, indice climatique ODD 13

Environnement

env_air_gge · nrg_bal_c · sdg_13_10

Trois jeux de données climatiques sélectionnables via un menu déroulant : émissions de gaz à effet de serre en Mt CO₂-éq., consommation finale d'énergie en ktep et l'indice climatique ODD 13 (base 1990 = 100). Lorsque GES ou Énergie est actif, une rangée de puces filtre par secteur (TOTAL / TRANSPORT / INDUSTRIE). Le graphique principal est une courbe comparant le pays actif à un pair ; deux tuiles de statistiques affichent les deux autres indicateurs pour la même année.

menu déroulant indicateur puce secteur courbe de comparaison
Module Commerce — barres divergentes pour exportations, importations, solde

Commerce

ext_lt_intratrd

Flux commerciaux intracommunautaires de marchandises — exportations, importations et balance commerciale en milliards EUR. Le graphique principal est un diagramme à barres divergentes couvrant les huit années les plus récentes, les exportations s'étendant vers la droite et les importations vers la gauche. Trois onglets soulignés (Exportations / Importations / Solde) mettent en évidence la direction concernée. Deux tuiles compactes affichent les chiffres du pays actif pour l'année sélectionnée.

barres divergentes onglets soulignés menu déroulant année
Module Transport — petits multiples pour passagers routiers et aériens

Transport

road_pa_buscoa · avia_paoc

Volumes de passagers routiers et aériens présentés en petits multiples de courbes côte à côte. Les données routières (milliards de passagers) et aériennes (millions de passagers) sont mises à l'échelle indépendamment par panneau. Un bouton bascule (ROUTE / AIR / TOUT) contrôle les panneaux visibles. Une bascule d'échelle logarithmique comprime l'axe pour les pays aux magnitudes très différentes. Trois tuiles résument la route, l'air et une tuile « mer : n/d » qui explique honnêtement pourquoi le jeu de données portuaire est intentionnellement exclu.

petits multiples bouton bascule échelle logarithmique
Module Tourisme — nuits empilées et carte thermique de saisonnalité

Tourisme

tour_occ_ninat · tour_occ_nim

Nuitées en hébergement touristique — résidents, non-résidents et total — représentées en graphique à barres empilées sur les neuf années les plus récentes. Une rangée de puces contrôle quel indicateur détermine le titre. Sous les barres empilées, une carte thermique mensuelle de saisonnalité (cellules = mois × année) montre la répartition des nuitées au fil du calendrier.

barres empilées rangée de puces carte thermique saisonnalité
Module Social — les tuiles KPI pilotent un graphique multilignes surlignées

Social

ilc_li02 · ilc_peps01 · hlth_silc_01

Trois indicateurs de bien-être en pourcentage issus des enquêtes EU-SILC : taux de risque de pauvreté, taux de risque de pauvreté ou d'exclusion sociale, et part de la population déclarant un état de santé très bon. Les trois sont tracés ensemble sous forme de graphique multilignes surlignées ; appuyer sur une tuile KPI déplace l'accent sur cette série et met à jour la valeur du titre.

multilignes surlignées sélecteur de tuile KPI curseur d'année
Module Science — graphique radar pour R&D, usage internet et enseignement supérieur

Science

rd_e_gerdtot · isoc_ci_ifp_iu · edat_lfse_03

Trois indicateurs d'innovation — dépenses de R&D en % du PIB, taux d'utilisation d'internet et taux d'accès à l'enseignement supérieur chez les 25–64 ans — affichés simultanément sur un graphique radar. Le radar superpose le pays actif à un seul pair (DE en priorité, puis FR, puis EU27). Trois sparklines en dessous montrent toujours la tendance complète. Il n'y a pas de sélecteur d'indicateur ; le radar présente les trois axes à la fois.

graphique radar superposition pair trois sparklines
Sous le capot

Des choix éprouvés et conservateurs — intentionnellement.

Architecture propre sur 17 modules Gradle. Chaque couche dispose d'un contrat scellé. Aucun opérateur !! nulle part ; pas de graphiques tiers ; pas de fuite de dispatcher.

Architecture

  • Architecture propre multi-modules — datadomainui
  • Contrats Result<T> · AppError · DispatcherProvider
  • Decompose pour la navigation, les composants & le cycle de vie
  • Koin pour l'injection de dépendances
  • Modèle de dépôt stale-while-revalidate

Données

  • Ktor Client — moteur Darwin sur iOS, OkHttp sur Android
  • kotlinx.serialization pour JSON & blobs de cache
  • Schémas SQLDelight avec DAO typés
  • Parseur JSON-stat 2.0 maison dans core-jsonstat
  • Coroutines + Flow + StateFlow tout au long

Interface

  • Compose Multiplatform — Android, iOS, Bureau
  • Tokens de design object Euro — couleurs, typographie, espacements, formes
  • ~25 composables réutilisables dans core-ui
  • Huit types de graphiques sur Canvas Compose pur — sans Koalaplot
  • kotlin.test & Turbine pour les tests unitaires & de flux
Trois facteurs de forme

Téléphone, tablette, bureau — le même code Compose.

Un journaliste sur bureau, une étudiante sur tablette, un citoyen sur téléphone — les mêmes données, les mêmes composants, le même rendu. Déjà implémenté au niveau de l'infrastructure.

Android
Android téléphone · tablette
iOS
iPhone · iPad
macOS · Linux · Windows
Compose Desktop

Une seule base de code Kotlin. Interface Compose Multiplatform. Composants natifs sur chaque plateforme.

Feuille de route

Transparent sur ce qui est livré, ce qui suit, ce qui nécessite un financement.

Le projet est en Phase 4 : les huit modules affichent des données réelles sur Android. La Phase 5 finalise l'interface — tableau de bord, sélecteur de pays, paramètres — et la Phase 6 produit la première version.

Disponible aujourd'hui

Phase 4 · vérifié
  • Huit modules thématiques connectés de bout en bout aux données Eurostat réelles
  • Mise en cache stale-while-revalidate · le mode hors ligne survit à un vol
  • Sélecteur d'année dans chaque module · le titre se met à jour sans nouveau téléchargement
  • Huit types de graphiques sur Canvas Compose pur
  • APK Android compilé · .jar Compose Desktop fonctionne sur macOS/Linux/Windows
  • Publié sous AGPL-3.0

Prochain jalon (M1)

Phase 5 · en cours
  • Tableau de bord d'aperçu — grille de tuiles d'entrée
  • Sélecteur de pays — liste consultable et carte interactive
  • Test de fumée iOS dans le simulateur · vérifier les huit onglets
  • Persistance des paramètres · thème, pays par défaut, langue
  • Rendu réel des drapeaux · police Inter intégrée

Objectifs de financement (M2 · M3)

Phase 6 · candidat NLnet
  • Localisation · traductions polonaise & ukrainienne
  • Installateurs natifs · .dmg, .msi, .deb, Flatpak
  • Comparaison multi-pays · superposition ou petits multiples
  • Recherche transversale · index d'indicateurs sur les huit modules
  • Mises en page maître-détail grand écran pour tablette et bureau
Open source · intérêt public

Développé de façon indépendante. Publié sous AGPL-3.0.

Une soumission à l'appel ouvert NLnet est actuellement à l'étude pour financer les prochains jalons. Les citoyens, journalistes et étudiants devraient pouvoir explorer les données publiques européennes sans dépendre d'un fournisseur unique — sur n'importe quel appareil qu'ils possèdent déjà.

Lire la feuille de route