Weather Scraper — Android Architecture Showcase

Type : Projet Universitaire Collaboratif (2 développeurs)

Objectif : Concevoir une solution mobile robuste capable de fournir des données météo ultra-précises en temps réel via une architecture logicielle évolutive.

Langage & Core
Kotlin Coroutines
Architecture
MVVM Clean Architecture
Network
Retrofit 2 GSON
UI & UX
ViewBinding RecyclerView

Détails du Système

  • Gestion de la donnée : Implémentation du Repository Pattern pour séparer la source de données (OpenWeatherMap API) de la logique métier.
  • Géolocalisation : Intégration du Fused Location Provider pour une récupération optimisée de la position GPS.
  • Internationalisation : Support natif intégral Français/Anglais via les ressources XML.
  • Intents Implicites : Système de partage permettant d'exporter les conditions météo vers n'importe quelle application tierce (SMS, Email, Réseaux Sociaux).

Parcours du Projet

S (Situation) : Dans le cadre d'un module de développement mobile avancé, nous devions livrer en 4 semaines une application météo complète répondant à des contraintes techniques strictes (Tests, Architecture, API).

T (Tâche) : Le défi était de synchroniser le travail de 2 développeurs sur un même dépôt. Il fallait intégrer une API REST, gérer les permissions critiques (GPS), et assurer une couverture de test (Unitaires et UI) tout en maintenant un "Clean Code".

A (Action) : L'équipe a segmenté le projet :

  • Mise en place d'une Clean Architecture (Data, Domain, Presentation).
  • Développement d'un système de navigation fluide entre 3 écrans (Météo actuelle, Prévisions 5 jours, À propos).
  • Mise en place de Coroutines pour éviter tout blocage de l'interface lors des appels réseau.
  • Création d'une suite de tests automatisés avec Espresso et JUnit pour garantir la non-régression.

R (Résultat) : Nous avons livré une application performante, capable de s'adapter à la position de l'utilisateur instantanément. Le projet a été validé avec une mention spéciale sur la qualité du code et la gestion des processus asynchrones.

Explorer le code sur GitHub
Retour en haut