SDK : qu’est-ce qu’un Software Development Kit ?

Les développeurs de logiciels doivent faire face quotidiennement à de nombreux défis. Outre la programmation à proprement parler, il leur faut notamment concevoir des concepts et des prototypes pour de nouvelles applications, planifier et organiser les étapes de développement ou analyser les résultats intermédiaires et corriger les erreurs et les points faibles. La tendance à la complexité croissante des logiciels ne les aide pas à accomplir ces tâches et les outils comme les frameworks (c’est-à-dire des structures de code prêtes à l’emploi) sont aujourd’hui indispensables au quotidien pour les développeurs.

Les Software Development Kits (SDK) constituent un autre outil indispensable jouant un rôle majeur dans le travail quotidien avec les langages de programmation ainsi que dans le développement et la mise à disposition de logiciels spécifiques à une plate-forme.

Qu’est-ce qu’un Software Development Kit ?

Un Software Development Kit, abrégé en SDK, est un ensemble d’outils et d’informations facilitant ou rendant possible aux développeurs le développement de programmes dans un langage de programmation spécifique, ou pour une plate-forme cible ou une application donnée. La composition et la publication d’un tel kit de développement sont la responsabilité du développeur initial du langage de programmation ou du matériel/logiciel concerné, qui a naturellement un intérêt personnel à ce que des logiciels tiers pour son produit ou codés dans son langage de programmation soient commercialisés. Dans la plupart des cas, les Software Development Kits sont par conséquent proposés en accès libre, le fabricant pouvant faire dépendre leur utilisation de certaines règles ou licences.

Définition : Software Development Kit

Software Development Kit : un SDK (Software Development Kit) est une compilation d’outils permettant le développement d’applications destinées à un matériel/logiciel donné ou codées dans un langage de programmation spécifique. Pour certains langages interprétés, le SDK peut correspondre à un environnement d’exécution.

De quoi est composé un Software Development Kit (kit de développement) ?

La composition d’un SDK varie en fonction du fabricant. Le contenu d’un kit dépend également de sa finalité : si celui-ci a été conçu pour un langage de programmation, un système d’exploitation ou un produit matériel. Parmi les composantes standards que l’on retrouvera dans la quasi-totalité des Software Development Kits, on peut citer les API (« interfaces de programmation d’application ») permettant de rattacher de nouveaux projets logiciels au niveau du code source. La mise à disposition de ces interfaces de programmation indispensables s’accompagne généralement d’une documentation détaillée contenant des explications sur l’utilisation de l’API ainsi que d’autres informations utiles. De cette façon, les développeurs intéressés peuvent se faire rapidement une idée de la faisabilité et de la manière de réaliser le projet prévu.

Note

À la place de SDK, certains fabricants utilisent d’autres désignations pour leurs kits logiciels. Oracle nomme par exemple ces kits pour le langage de programmation répandu Java « JDK » pour Java (SE) Development Kit.

Si cela s’avère nécessaire pour le développement ou si cela simplifie considérablement le processus de développement, un bon Software Development Kit doit par ailleurs contenir toutes les composantes techniques de base, telles que des éditeurs, des bibliothèques, des environnements d’exécution et de développement, des compilateurs ou des débogueurs (et si possible, d’autres outils de test et d’analyse). Les pilotes spécifiques et les protocoles réseau nécessaires entrent également dans cette catégorie. Dans certains cas, les fabricants ajoutent aux SDK des exemples ou de petits projets test permettant de débuter facilement.

Résumé des composantes possibles de Software Development Kits :

  • API
  • Documentation
  • Éditeurs
  • Bibliothèques
  • Environnements d’exécution et de développement
  • Compilateurs
  • Débogueurs
  • Pilotes
  • Protocoles réseau
  • Exemples/projets test

Quelles règles ou licences peuvent s’appliquer aux SDK ?

Comme nous l’avons déjà mentionné, la plupart des SDK sont disponibles gratuitement. Ceci est principalement dû au fait que les nouveaux logiciels développés pour le système ou l’appareil conçu par le fabricant représentent pour ce dernier le moyen le plus simple d’augmenter sa valeur ajoutée pour les utilisateurs. Les smartphones et les tablettes, qui susciteraient uniquement une fraction de l’intérêt qui leur est porté sans les applications des prestataires tiers, illustrent parfaitement cet état d’esprit. Le téléchargement et l’utilisation d’un Software Development Kit peuvent toutefois dépendre de certaines règles.

Il est par exemple possible qu’un fabricant autorise l’accès au SDK si l’utilisateur s’engage à ne pas transmettre certaines informations confidentielles. Un tel accord de confidentialité (en angl. non-disclosure agreement) est fréquent dans le cas de logiciels comportant des algorithmes secrets, et de produits en alpha ou bêta test. Afin de garantir que le logiciel créé ne soit pas publié sous une autre licence incompatible, un Software Development Kit peut également comporter sa propre licence. On distingue ici les licences propriétaires et les licences libres. Il est conseillé aux développeurs de se familiariser avec ces types de licence avant de commencer leur travail, comme le montrent les exemples suivants :

  • Si un SDK est doté d’une licence propriétaire, il ne convient pas au développement de logiciels open source.
  • Si un Software Development Kit est proposé sous une licence GPL (GNU General Public License), il ne conviendra pas au développement d’applications propriétaires.
  • Si un SDK est sous licence libre LGPL (GNU Lesser General Public License), il peut également être utilisé pour des projets avec des éléments de code propriétaires. Néanmoins, ces derniers devront toujours être structurés de manière à ce que les utilisateurs finaux puissent identifier et modifier à tout moment la partie open source du logiciel.
Remarque

Les applications open source, telles que LibreOffice ou Mozilla Firefox sont en constante évolution, principalement grâce au Software Developments Kit publié : les développeurs amateurs ou professionnels utilisent les SDK de ces programmes libres pour programmer de nouveaux designs ou des extensions de fonctionnalités et les mettre à disposition de toute la communauté.