Mes 5 API Java préférées

Mes 5 API Java préférées

Mise en place d'architectures

Étant amené à développer chaque jour en Java, il y a certains automatismes qui se créent naturellement, mais également des manques criants lorsqu’on souhaite optimiser son travail. Pour répondre aux besoins des développeurs, d’autres développeurs mettent la main à la pâte et développent des API – pour Application Programming Interface. Ces dernières sont souvent très appréciées car elles facilitent le travail d’intégration du développeur, quelque soit le langage qui est utilisé, et lui offrent des services utiles comme créer un nouveau tweet sur Twitter, comparer deux collections d’objets pour savoir si les mêmes objets y sont contenus, etc.

Ces interfaces ont plusieurs points forts (pour quelques points faibles, disons-le quand même !) comme le fait de vous offrir des fonctionnalités dont vous n’avez pas à vous soucier de l’implémentation (puisque c’est d’autres personnes qui s’y collent à votre place), d’optimiser des procédés qui rendront votre application plus rapide face à certaines actions ou encore de vous faire gagner beaucoup de temps durant votre développement. Ce sont des petits « + » non négligeables. Bien sûr, les détracteurs diront qu’ils se sentent dépendants des développeurs qui s’occupent de ces APIs ou qu’ils ne voudraient pas se retrouver sans support après que l’équipe en charge décide de ne plus maintenir le code. Mais ceci est une autre histoire.

En ce qui me concerne, j’ai un coup de coeur particulier pour les APIs suivantes qui, en plus de me faciliter la vie, s’avèrent bougrement efficaces pour traiter tout un tas de problématiques:

  • Joda-Time: une formidable API de gestion de dates qui traite tout aussi bien les dates avec heures que les dates sans heures, les périodes de temps, les durées ou encore les jalons représentant un instant donné. Je ne sais pas comment j’ai fait pour gérer mes dates sans ce merveilleux outil !
  • Guava (aka Google Collections): une puissante API qui vient tout droit de chez Google et qui gère extrêmement bien tout ce qui touche aux collections Java (List, Set, Map, ListMultimap, etc.). Je l’apprécie particulièrement pour créer de nouvelles instances de collections sous la forme simplifiée: List<MonObjet> maListe = Lists.<MonObjet>newArrayList();
  • Apache Collections: une autre très bonne API, cette fois de nos amis de chez Apache (qui ne font pas QUE dans les serveurs web, mauvaises langues !), et qui gère d’autres aspects très intéressants au niveau des collections Java. Je l’apprécie particulièrement pour ses méthodes utilitaires permettant, par exemple, de comparer deux listes et d’indiquer si elles contiennent exactement les mêmes objets… c’est simple et efficace
  • Apache Commons IO: toujours du côté de chez Apache, l’API Commons IO qui gère tout ce qui a trait aux flux d’entrée/sortie, donc notamment les fichiers. J’adore cette API pour une chose relativement simple mais qui pose régulièrement problème: la gestion des retours chariots (CR/LF) qui diffère entre plateformes Linux, Windows et OSX, ainsi que la gestion des répertoires (navigation Unix avec des « / » ou Windows avec des « \ »). Cela dit, elle fait bien d’autres choses très utiles !
  • JGoodies: j’ai beaucoup parlé de classes utilitaires pour le métier et pour la persistance, mais pas encore pour la présentation de l’info. Et bien voilà qu’arrive JGoodies ! C’est une API de présentation qui fait des miracles, surtout dans des interfaces lourdes comme avec Swing. Animations, liaisons d’objets à des composants en mémoire, construction d’écrans complexes, système de validation de formulaires (vérifie les contraintes métier), etc. Vous trouverez sans doute votre bonheur là-dedans et surtout, ça améliorera sensiblement votre rapidité d’écriture d’interfaces !

Bref, vous avez maintenant un bel aperçu d’excellents outils pour vous aider à mieux développer et à construire des applications plus robustes et complètes ! Pour terminer, je tiens à préciser que cette liste n’est pas forcément exhaustive et ne reflète que mon point de vue (d’ailleurs, elle n’est même pas numérotée, c’est fait exprès). Je voulais simplement vous présenter des outils puissants que j’utilise souvent et qui me simplifient la vie. J’espère que ça vous sera utile 😉

Source de l’image: Pixabay.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.