Projet académique en cours — Client mobile Android pour parcourir, créer et supprimer des livres et des auteurs via une API
Ce projet est une application Android développée dans le cadre du cours de développement mobile. Elle constitue le client mobile de l'API Books réalisée en W41, et permet à un utilisateur de consulter un catalogue de livres et d'auteurs, d'en créer de nouveaux et d'en supprimer, le tout depuis une interface moderne et fluide.
- Formation : BUT2 Informatique — Module P42 — Développement mobile Android
- Objectif : Concevoir une application Android complète communiquant avec une API
- Compétences : Architecture MVVM, Retrofit, Navigation Component, RecyclerView, LiveData
- Affichage de la liste des livres dans un
RecyclerView - Consultation des détails d'un livre (titre, description, tags)
- Création d'un livre via un formulaire (FAB)
- Suppression d'un livre depuis sa page de détail
- Affichage de la liste des auteurs dans un
RecyclerView - Consultation des livres écrits par un auteur au clic
- Navigation vers le détail d'un livre depuis la liste de l'auteur
- Création d'un auteur via un formulaire (FAB)
- Suppression d'un auteur (et de ses livres associés)
| Composant | Technologie |
|---|---|
| Langage | Java |
| IDE | Android Studio |
| Appels réseau | Retrofit |
| Architecture | MVVM (ViewModel + LiveData) |
| Navigation | Navigation Component |
| UI | RecyclerView, FAB, BottomNavigationView (Material Design) |
| API | API W41 (Bun / TypeScript) |
- Android Studio installé
- Un appareil Android ou un émulateur AVD
- L'API W41 lancée et accessible (voir le mode d'emploi de l'API)
1. Cloner le dépôt
git clone https://github.com/AmbreRoise/AndroidBooksClient.git
cd AndroidBooksClient2. Ouvrir dans Android Studio
Ouvrez le dossier AndroidBooksClient/ dans Android Studio et laissez Gradle synchroniser le projet.
3. Configurer l'URL de l'API
Dans app/src/main/java/p42/androidbooksclient/db/Repository.java, adaptez l'URL selon votre cas :
// Sur émulateur
private static final String API_URL = "http://10.0.2.2:3000/";
// Sur téléphone physique (après adb reverse, voir api.md)
private static final String API_URL = "http://127.0.0.1:3000/";4. Lancer l'application
Sélectionnez votre appareil cible et cliquez sur Run.
L'application suit le pattern MVVM (Model-View-ViewModel) recommandé par Android Jetpack, avec une séparation stricte des responsabilités.
app/
├── model/ # Modèles de données (Book, Author, Tag)
├── db/
│ └── Repository.java # Point d'accès unique à l'API (Retrofit)
| └── Services.java # Divers services pour les requêtes
├── viewmodel/ # ViewModels exposant des LiveData
└── views/
├── fragments/ # BookListFragment, AuthorListFragment,
│ # BookDetailFragment, AuthorDetailFragment, ...
└── adapters/ # Adapters RecyclerView (BookAdapter, AuthorAdapter)
Fragment ──observe──► ViewModel ──appelle──► Repository ──HTTP──► API
▲ │
└──────────────────── LiveData (mise à jour UI) ◄─────────────────────┘
- Une seule activité (
MainActivity) contenant uneBottomNavigationViewavec deux onglets : Livres et Auteurs - La navigation entre fragments est gérée par le Navigation Component (NavGraph)
- Le
Repositorycentralise tous les appels Retrofit et est le seul à connaître l'API - Les
ViewModelne font qu'exposer desLiveData: ils n'ont aucune connaissance de l'UI
Fouilleul Elora — Développeuse
Léger Hugo — Développeur
Projet réalisé dans le cadre du module P42 — Développement mobile Android