Application météo desktop multi-fournisseurs

En cours

Aelia

Application météo JavaFX avec fournisseurs distants et fallback, qualité de l’air, UV, pollens et carte interactive native.

Version de travail documentée : les captures et capacités décrites peuvent différer de la branche principale du dépôt public.

Objectif
Agréger plusieurs sources météo dans une interface desktop avec stratégie de fallback.
Points clés
Fournisseurs distants, stratégie de fallback, carte JavaFX native, cache, tests Maven et CI.
Desktop Accessibilité Architecture Données
Tableau de bord météo Aelia.
Dashboard météo desktop Aelia.

Problème

Le problème à résoudre

Présenter des données météo riches sans coupler l’interface à un fournisseur unique et sans multiplier inutilement les requêtes cartographiques.

Architecture

Les pièces du système

  • L’interface JavaFX consomme un contrat WeatherDashboardProvider.
  • RemoteWeatherDashboardProvider orchestre Open-Meteo puis les fallbacks configurés.
  • WorldMapView affiche des tuiles OSM sans WebView ; MapTileCache gère mémoire, disque, priorité et rafraîchissement.

Décisions

Décisions techniques

  • Prioriser Open-Meteo. Une source sans clé sert de référence ; les fournisseurs à clé restent des fallbacks explicites.
  • Limiter les requêtes cartographiques. Seules les tuiles utiles à la vue courante sont prioritaires et un cache disque prolonge leur réutilisation.

Schéma

Vue d’ensemble de l’architecture

Le schéma complète l’étude de cas avec les composants et frontières réellement présents dans le projet.

Schéma d’architecture d’Aelia.
Interface JavaFX, contrat fournisseur et intégrations météo/cartographiques.

Implémentation

Points techniques principaux

  • Modes simulated, auto et api.
  • Open-Meteo en source principale avec fallbacks WeatherAPI.com, Visual Crossing, OpenWeather, Weatherbit et Pirate Weather lorsque configurés.
  • Qualité de l’air Open-Meteo : AQI européen, PM2.5, PM10, NO₂ et pollens.
  • Carte JavaFX native avec tuiles OpenStreetMap, déplacement, zoom, sélection de localisation et géocodage inverse Nominatim.
  • Cache mémoire et disque des tuiles ; les tuiles visibles sont prioritaires.
  • Tests Maven et workflow GitHub Actions sous Java 26.

Difficultés

Difficultés résolues

  • Tolérer les indisponibilités fournisseur. Le mode auto tente les sources distantes puis revient à la simulation si aucune ne répond.
  • Construire une carte native. Zoom, déplacement, sélection et géocodage sont réalisés en JavaFX sans WebView.

Qualité

Tests et garde-fous

  • Tests unitaires Maven.
  • CI GitHub Actions alignée sur Java 26.

Livraison

Livraison et CI/CD

  • Lancement Maven/JavaFX documenté.
  • Le projet reste une application desktop locale.

Résultats

Résultats observables

  • Données météo réelles et fallback multi-fournisseurs.
  • Carte native avec sélection de localisation et cache de tuiles.

Compromis

Compromis techniques

  • Les fallbacks à clé exigent une configuration utilisateur.
  • Le cache cartographique ne constitue pas un téléchargement hors ligne du monde.

Limites

Les limites actuelles

  • Version de travail documentée : les captures et capacités décrites peuvent différer de la branche principale du dépôt public.
  • Pas de préchargement de zones complètes.
  • Les fournisseurs à clé ne fonctionnent qu’après configuration des identifiants nécessaires.

Suite

Prochaines étapes

  • Poursuivre les tests d’intégration sur erreurs réseau, quotas et données partielles.

Captures

Quelques écrans pour parcourir le projet.

Synthèse

Compétences et techniques mobilisées

  • L’interface n’est pas liée à un fournisseur météo unique.
  • La carte charge prioritairement les tuiles visibles et les conserve dans des caches mémoire et disque afin de limiter les requêtes au fournisseur cartographique.
  • Aucun préchargement d’une zone entière ni cache mondial hors ligne n’est implémenté.

Aperçu agrandi