Skip to content

imadev26/tp10-retrofit-rest-android

Repository files navigation

Application Android REST Client - Gestion de Comptes Bancaires

Description

Application Android permettant de consommer un service REST pour gérer des comptes bancaires avec des fonctionnalités CRUD complètes (Create, Read, Update, Delete). L'application utilise Retrofit pour les appels API et RecyclerView pour l'affichage des données.

Fonctionnalités

  • Affichage des comptes : Liste des comptes bancaires avec RecyclerView
  • Ajout de compte : Formulaire pour créer un nouveau compte
  • Modification de compte : Édition des informations d'un compte existant
  • Suppression de compte : Suppression avec confirmation
  • Support JSON et XML : Basculer entre les deux formats de données
  • Interface Material Design : UI moderne et intuitive

Architecture du Projet

ma.projet.restclient/
├── entities/           # Classes de modèle (Compte, CompteList)
├── api/               # Interface de service REST (CompteService)
├── config/            # Configuration Retrofit (RetrofitClient)
├── repository/        # Couche d'accès aux données (CompteRepository)
├── adapter/           # Adaptateur RecyclerView (CompteAdapter)
└── MainActivity.java  # Activité principale

Technologies Utilisées

  • Retrofit 2.9.0 : Client HTTP pour Android
  • Gson Converter : Conversion JSON
  • Simple XML Converter : Conversion XML
  • RecyclerView : Affichage de listes
  • Material Design Components : Interface utilisateur moderne
  • ConstraintLayout : Mise en page flexible

Configuration

Prérequis

  • Android Studio Arctic Fox ou supérieur
  • Android SDK 24 (Android 7.0) minimum
  • Target SDK 34 (Android 14)
  • JDK 8 ou supérieur

Configuration du serveur REST

L'application est configurée pour se connecter à un serveur REST local :

  • URL de base : http://10.0.2.2:8082/
  • Endpoint : /banque/comptes

⚠️ Note : 10.0.2.2 est l'adresse pour accéder à localhost depuis un émulateur Android.

Permissions

Les permissions suivantes sont requises dans AndroidManifest.xml :

  • INTERNET : Pour les appels réseau
  • ACCESS_NETWORK_STATE : Pour vérifier l'état de la connexion

Installation

  1. Cloner le projet :

    git clone <repository-url>
    cd reactnative
  2. Ouvrir dans Android Studio :

    • File → Open → Sélectionner le dossier du projet
  3. Synchroniser Gradle :

    • Android Studio synchronisera automatiquement les dépendances
    • Ou manuellement : File → Sync Project with Gradle Files
  4. Configurer le serveur REST :

    • Assurez-vous que votre serveur REST est en cours d'exécution sur le port 8082
    • Vérifiez que l'endpoint /banque/comptes est accessible
  5. Lancer l'application :

    • Connectez un appareil Android ou lancez un émulateur
    • Cliquez sur Run (▶️) ou Shift+F10

Structure des Données

Classe Compte

{
    "id": 1,
    "solde": 7113.18,
    "type": "COURANT",
    "dateCreation": "2024-11-14"
}

Types de compte

  • COURANT : Compte courant
  • EPARGNE : Compte d'épargne

Utilisation

Afficher les comptes

  • Au lancement, l'application affiche tous les comptes au format JSON
  • Utilisez les boutons radio en haut pour basculer entre JSON et XML

Ajouter un compte

  1. Cliquez sur le bouton flottant (+) en bas à droite
  2. Entrez le solde
  3. Sélectionnez le type (COURANT ou EPARGNE)
  4. Cliquez sur "Ajouter"

Modifier un compte

  1. Cliquez sur le bouton "Edit" d'un compte
  2. Modifiez les informations
  3. Cliquez sur "Modifier"

Supprimer un compte

  1. Cliquez sur le bouton "Delete" d'un compte
  2. Confirmez la suppression

Dépendances

// Retrofit
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
implementation 'com.squareup.retrofit2:converter-simplexml:2.9.0'
implementation 'com.squareup.retrofit2:converter-jaxb:2.9.0'
implementation 'org.simpleframework:simple-xml:2.7.1'

// Android UI
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'com.google.android.material:material:1.11.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
implementation 'androidx.recyclerview:recyclerview:1.3.2'

Sécurité Réseau

Le fichier network_security_config.xml autorise les connexions HTTP non sécurisées vers 10.0.2.2 (localhost de l'émulateur) :

<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">10.0.2.2</domain>
    </domain-config>
</network-security-config>

⚠️ Production : Pour une application en production, utilisez HTTPS et configurez correctement les certificats SSL.

Résolution de Problèmes

Erreur de connexion

  • Vérifiez que le serveur REST est en cours d'exécution
  • Vérifiez que l'URL est correcte (http://10.0.2.2:8082/)
  • Assurez-vous que les permissions INTERNET sont accordées

Erreur de parsing XML/JSON

  • Vérifiez que le format de réponse du serveur correspond aux annotations dans les classes
  • Consultez les logs Logcat pour plus de détails

Gradle sync failed

  • Vérifiez votre connexion Internet
  • Invalidate Caches and Restart : File → Invalidate Caches → Invalidate and Restart

Améliorations Futures

  • Pagination pour les grandes listes
  • Recherche et filtrage des comptes
  • Mode hors ligne avec cache local
  • Graphiques de statistiques
  • Export des données en PDF
  • Authentification utilisateur
  • Tests unitaires et d'intégration

Auteur

Projet développé dans le cadre d'un TP sur la consommation de services REST en Android.

Licence

Ce projet est à usage éducatif.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages