Jump to section

Un SDK, qu'est-ce que c'est ?

Copier l'URL

Un kit de développement logiciel (SDK) est un ensemble d'outils fourni avec une plateforme matérielle (généralement), un système d'exploitation ou un langage de programmation tel que Java.

Il permet aux développeurs de logiciels de créer des applications propres à cette plateforme, ce système ou ce langage de programmation. C'est un peu comme une boîte à outils, ou comme le sachet d'outils fourni avec les éléments d'un meuble à assembler soi-même, mais pour développer une application. Il renferme tous les composants, ou outils de développement, nécessaires pour effectuer la tâche, et son contenu varie selon le fabricant. 

Un SDK de base comprend un compilateur, un débogueur et des interfaces de programmation d'application (API). Il peut également contenir tout ou partie des éléments suivants :

Un SDK doit inclure tous les composants dont un développeur a besoin afin de créer des applications pour le produit en question et son écosystème. Certains SDK contiennent également un exemple de projet ou un projet test de base pour démarrer le plus rapidement possible.

Parmi les kits de développement logiciel, on peut citer entre autres le kit de développement Java (JDK), le SDK Windows 7, le SDK MacOS X et le SDK iPhone. Le SDK de l'opérateur Kubernetes, par exemple, vous permet de développer votre propre opérateur Kubernetes. Il contient des API de haut niveau, des outils de création de structure d'application de base et de génération de code ainsi que des extensions pour couvrir les cas d'utilisation les plus fréquents de l'opérateur. 

La plupart des SDK incluent une API afin de connecter les nouvelles applications mobiles ou les nouveaux projets au niveau du texte source, dans la ligne de commande. Souvent, ils contiennent également des exemples de programmes et de bibliothèques pour que les développeurs comprennent comment développer des programmes de base. Ces derniers peuvent ensuite passer plus facilement à l'optimisation et au développement d'applications plus complexes, et apprendre à résoudre les problèmes et à ajouter de nouvelles fonctions selon les besoins.

La prise en main d'un nouveau kit de développement logiciel peut prendre du temps et c'est pourquoi certains SDK incluent de la documentation sur la manière d'utiliser les API ainsi que des tutoriels, des FAQ et des exemples d'éléments graphiques. Une interface de programmation ou une interface utilisateur simple (ou disposant d'une documentation plus complète) peut donc inciter les développeurs à choisir le programme d'une entreprise plutôt que celui de ses concurrents.

De la même manière, un SDK peut être un excellent moyen pour une entreprise de présenter ses produits aux développeurs et de les encourager à créer des applications en utilisant sa plateforme ou son système d'exploitation, en temps réel, dans un environnement de développement intégré. C'est pourquoi la plupart des SDK sont gratuits : il suffit de les télécharger pour commencer à programmer. 

Avant de pouvoir utiliser certains SDK, les utilisateurs doivent parfois accepter des règles ou des accords, en particulier pour les nouveaux produits au stade alpha ou bêta, ou pour les logiciels comportant des algorithmes non publics (et donc non Open Source). Un SDK peut également faire l'objet d'un accord de licence qui empêche de diffuser le logiciel sous une licence incompatible.

Les développeurs doivent prendre en compte un certain nombre d'éléments lors du choix d'un SDK. Par exemple :

  • Un SDK sous licence propriétaire n'est pas compatible avec le développement d'un logiciel Open Source.
  • Un SDK sous licence publique générale (GPL) ne permet pas de développer des applications propriétaires.
  • L'utilisation d'un SDK sous licence publique générale amoindrie (LGPL) pour des projets avec des éléments de code propriétaire soulève quelques réserves. 

Les applications Open Source sont développées en continu, par des amateurs et des professionnels, parce que leur SDK permet le codage de nouveaux éléments et de fonctionnalités étendues qui sont ensuite partagés avec le reste de la communauté. 

Red Hat rassemble les meilleurs outils, solutions et services pour le développement d'applications, et ce conformément au modèle Open Source. Que vous recherchiez une plateforme pour créer votre application (Red Hat OpenShift), un environnement d'exécution (Red Hat Runtimes) ou un environnement complet avec tous les outils nécessaires pour développer, tester, corriger et déployer des applications, Red Hat a tout prévu.

 

Pour aller plus loin

ARTICLE

Stateful et stateless : quelle est la différence ?

Les qualificatifs « stateful » ou « stateless » dépendent de la durée pendant laquelle l'état de l'interaction avec un élément est enregistré ainsi que de la manière dont cette information doit être stockée.

ARTICLE

Quarkus, qu'est-ce que c'est ?

Quarkus est une pile Java native pour Kubernetes conçue pour les machines virtuelles Java (JVM) et la compilation native, qui permet d'optimiser Java spécifiquement pour les conteneurs.

ARTICLE

Le serverless ou informatique sans serveur, qu'est-ce que c'est ?

Le serverless est un modèle de développement cloud-native qui permet aux développeurs de créer et d'exécuter des applications sans avoir à gérer des serveurs.

En savoir plus sur les applications cloud-native

Produits

Une plateforme d'applications d'entreprise comprenant un ensemble unifié de services testés conçus pour distribuer des applications sur votre choix d'infrastructure.

Ressources

Formations

Formation gratuite

Développement d'applications cloud-native avec des architectures de microservices