Technologies

Retour d’expérience Swing

Publié le : Auteur: vhanniet Laisser un commentaire
technologies

J’ai travaillé sur un projet dans le domaine de la Sécurité en tant que concepteur et développeur, et j’ai réalisé la conception et le développement d’une application de gestionnaire de configuration de téléphones portables de type Android.

Cette application permet de générer un fichier XML que l’on installe sur une carte SD. Une fois la carte insérée dans un téléphone portable, ce dernier s’auto-configure après le démarrage et la lecture du fichier XML.

J’ai développé cette application avec Java/Swing pour la création des interfaces qui permettent d’importer le fichier XML de base et d’exporter les fichiers signés et sécurisés dans la carte SD. Ce fichier XML contient des codes Pin, Puk, code d’activation et des options de configuration de téléphone  portable (par exemple désactiver les options d’appareil photo et/ou d’écoute de la musique…).

Le choix de Swing

Swing est une plateforme de développement d’interface graphique qui s’appuie sur AWT et java2D pour mettre en place un ensemble de composant graphique sophistiqué extensible.

Avantage

  • Environnement à 100% indépendant du système d’exploitation.
  • Faible couplage entre les composants graphiques du système d’exploitation et ceux de Swing.
  • Facilité de déploiement.
  • Utilisation du Look and Feel qui donne un Look sympathique à  l’application.

Inconvénient

  • Lenteur de chargement des données et d’exécution.

J’ai utilisé le concept du pattern MVC qui m’a permis de séparer les données (le modèle), l’interface homme-machine (la vue) et la logique de contrôle (le contrôleur). L’intérêt de ce pattern est la facilité pour le client : si un jour par exemple il veut migrer vers une autre base de données (exemple MySQL), il n’aura qu’à modifier le modèle sans toucher au reste.

L’utilisation du modèle MVC, donne une conception claire et efficace grâce à la séparation des données de la vue et du contrôleur, et permet un gain de temps de maintenance et d’évolution du logiciel. Mais il y a un petit inconvénient, la séparation des différentes couches nécessite la création de plus de fichiers (Un fichier pour la vue, Un fichier pour le modèle, Un fichier pour le contrôleur).

Cette application marche sous les deux systèmes d’exploitation Windows et Linux.

Gestionnaire de configuration

Vue globale des composants de l’application de gestionnaire de configuration

 

  • IHM : Interfaces graphiques (JTree, JMenu,…).
  • Commandes : composant qui permet de personnalisé le fichier XML.
  • Coupleur du composant de sécurité : permet de faire la liaison entre le gestionnaire de configuration et le composant de confiance.
  • Composant de confiance : une API codé en java et utilisé pour crypter les données du fichier XML, cette API propre au client.