Gestionnaire de Contacts
Presentation
Objectif principal : Une application desktop pour gerer ses contacts. Ajouter, modifier, supprimer, rechercher. Avec groupes, import/export vCard, et synchronisation avec un fichier.
Technologies utilisees : Java avec JavaFX pour l'interface graphique. Serialisation Java pour sauvegarder les donnees. Pattern MVC pour l'architecture.
Fonctionnalites cles : CRUD contacts avec nom, tel, email, adresse, photo. Groupes (famille, travail, amis). Recherche instantanee. Import/export vCard. Interface moderne avec JavaFX.
Livrables attendus : Application executable (.jar). Base de contacts initiale vide. Manuel utilisateur basique.
Calendrier previsionnel : Deux semaines. JavaFX c'etait nouveau, fallait apprendre le FXML et le CSS de JavaFX.
Parties prenantes & criteres de succes : TP de Java avance. On devait montrer qu'on sait faire une vraie app avec interface graphique et persistence.
Le Defi
Faire une interface moderne avec JavaFX. Par defaut ca fait tres "application des annees 2000". Et la synchronisation du modele avec la vue (binding) c'est pas evident au debut.
La Solution
J'ai utilise du CSS custom pour JavaFX avec des couleurs modernes et des animations. Pour le binding, j'utilise les Property de JavaFX (SimpleStringProperty, etc.) qui se mettent a jour automatiquement dans la vue. Ca evite beaucoup de code boilerplate.
Architecture Technique
Pattern MVC. Model : classes Contact, Group, ContactBook (Serializable). View : fichiers FXML pour chaque ecran (list, detail, edit). Controller : un controller par vue qui gere les events. Service ContactService pour la logique metier et la persistence.
Points Cles
- Interface moderne JavaFX
- Import/export vCard
- Recherche instantanee
Apercu
Resultats & Apprentissages
L'app marche bien, j'ai eu 16/20 au TP. JavaFX c'est plus agreable que Swing une fois qu'on a compris le FXML. Le MVC en Java c'est tres structure, ca aide a organiser le code. La serialisation c'est pratique mais fragile si on change les classes.
Evolutions Futures
Synchronisation avec Google Contacts via API. Base de donnees SQLite au lieu de la serialisation. Rappels d'anniversaires. Version mobile avec partage de contacts.