SAE3.02 - Application Android Client/Serveur

Programmation Java avec protocoles TCP/IP et UDP

Introduction

La SAE3.02 visait à développer une application client-serveur capable de communiquer à travers les protocoles TCP et UDP, en respectant un cahier des charges précis. Ce projet m'a permis de renforcer ma maîtrise des concepts fondamentaux de la communication réseau, notamment la gestion des connexions multiples, l'authentification des utilisateurs, et l'échange de données complexes.

Développée en Java avec Android Studio, l'application intègre des fonctionnalités avancées comme le multithreading, un système d'authentification par rôles, et un service de transfert de fichiers. Ce projet a été une opportunité unique d'explorer les protocoles réseau tout en appliquant des solutions concrètes pour améliorer l'expérience utilisateur.

Interface de connexion

Interface d'authentification

Écran de connexion avec gestion des rôles admin/utilisateur.

Apprentissages Critiques Mobilisés

Interface principale

Interface utilisateur

Écran principal avec sélection TCP/UDP et services disponibles.

Présentation du Projet

Le projet s'est déroulé en plusieurs phases structurées, mettant en avant mes compétences en développement logiciel et en gestion de projet.

1. Analyse et Conception

J'ai étudié les spécifications du cahier des charges, définissant les fonctionnalités clés de l'application : communication via TCP/UDP, gestion des connexions multiples, authentification, et services multiples. Cette phase a mobilisé mes capacités d'analyse critique et de planification technique.

2. Développement et Intégration

3. Services Implémentés

L'application propose trois services principaux :

4. Tests et Débogage

J'ai résolu des erreurs critiques comme la gestion simultanée des protocoles, la synchronisation des threads, et la validation des entrées utilisateur. Ces étapes ont permis de garantir la stabilité et la fiabilité de l'application.

Services de l'application

Interface des services

Écran montrant les trois services disponibles et leurs fonctionnalités.

Résultats Obtenus

Le projet a abouti à une application fonctionnelle répondant aux exigences initiales et démontrant mes compétences dans divers domaines :

1. Résultats Techniques

2. Résultats Pratiques

L'application a permis de simuler des scénarios réalistes de communication réseau, illustrant des cas d'usage tels que la gestion d'un serveur multi-services ou l'échange de données structurées. La gestion des droits d'accès et l'interface intuitive ont renforcé l'expérience utilisateur.

Résultats des tests

Validation fonctionnelle

Écrans montrant les tests de connexion et d'échange de données réussis.

3. Compétences Renforcées

Ce projet a consolidé mes bases en communication réseau, programmation Java, et développement Android. La résolution des erreurs rencontrées a également renforcé ma capacité à analyser et résoudre des problèmes complexes dans des environnements techniques.

Logs du serveur

Journalisation système

Logs détaillés montrant la gestion des connexions et l'exécution des services.

Technologies Utilisées

Conclusion

Le développement de cette application Android client/serveur a été un succès complet, répondant à tous les objectifs fixés dans le cahier des charges. L'application démontre une maîtrise approfondie des concepts de programmation réseau, de développement mobile et de gestion des architectures distribuées.

Cette SAE m'a permis d'acquérir une expertise significative en développement mobile. N'ayant pas d'expérience préalable en Java Android, je suis particulièrement fier du résultat obtenu. Le projet m'a poussé à maîtriser simultanément plusieurs domaines techniques : programmation orientée objet, protocoles réseau, multithreading, et écosystème Android.

L'implémentation du service de transfert de fichiers comme prise d'initiative démontre ma capacité à aller au-delà des exigences de base pour créer des fonctionnalités véritablement utiles. Cette expérience constitue une base solide pour de futurs projets de développement d'applications mobiles et de systèmes distribués.

Contactez-moi via les réseaux sociaux ou par email.