Definition

SDK (kit de développement logiciel)

Un kit de développement logiciel (SDK, Software Development Toolkit) est un ensemble de programmes et d'outils logiciels mis à disposition par des fournisseurs de matériel (constructeurs) ou de logiciels (éditeurs), que les développeurs utilisent pour élaborer des applications destinées à des plateformes spécifiques. Ainsi, un SDK contribue à faciliter l'intégration des applications des développeurs aux produits et services que propose son fournisseur.

Pour utiliser un SDK, le développeur doit disposer de celui qui correspond à la plateforme pour laquelle il développe : SDK iOS pour développer une application iOS ; kit d'outils Android pour une application Android ; SDK Nordic pour les applications Bluetooth ou sans fil ; ou encore SDK VMware pour intégrer une application à la plateforme VMware.

Si les SDK sont fortement associés aux applications mobiles – les « apps » – natives, les développeurs y ont également recours pour diverses plateformes numériques, notamment des sites Web ou des décodeurs TV.

Les SDK comprennent une documentation, des interfaces de programmation d'application (APIs, Application Programming Interfaces), des échantillons de code, des bibliothèques et des processus, ainsi que des guides que les développeurs peuvent utiliser et intégrer à leurs applications. Le SDK permet au développeur d'élaborer son application et d'en assurer la prise en charge ultérieure sans avoir à tout réécrire.

Plus spécifiquement, le SDK inclut :

  • Des bibliothèques ou des API – des éléments de code prédéfinis qui permettent au développeur d'exécuter des tâches de programmation répandues sur la plateforme.
  • Un environnement de développement intégré (IDE, Integrated Development Environment) – un éditeur visuel qui aide le développeur à concevoir et organiser des éléments graphiques, tels que zones de texte et boutons. Ces éléments sont monnaie courante dans les kits de développement logiciel destinés aux applications mobiles. Par exemple, l'IDE d'Apple, Xcode, contient un ensemble d'outils de développement logiciel qui permet aux développeurs d'élaborer un logiciel à la fois pour macOS, iOS, iPadOS, watchOS et tvOS. Android dispose de nombreuses options IDE.
  • Des outils pour aider les développeurs dans certaines tâches, telles que le débogage, la construction, l'exécution et les tests de leurs applications.

Les SDK permettent aux développeurs d'améliorer leurs applications, de leur apporter davantage de fonctionnalité et d'y intégrer, entre autres, des notifications de type push et des publicités. En outre, les ressources préconstruites qu'offrent les SDK facilitent le processus de création d'outils.

Par exemple, si un développeur souhaite permettre le partage d'images ou de texte depuis son application directement sur Facebook, il utilisera le SDK Android de Facebook dans lequel il trouvera le code nécessaire dédié aux dispositifs Android. Cette approche accélère le déploiement car le développeur n'a plus à réinventer la roue.

Pourquoi utiliser les SDK

Un kit de développement logiciel permet aux développeurs d'ajouter de la fonctionnalité à leurs applications, et d'élaborer les composants standard de ces dernières plus facilement et plus rapidement. Les SDK sont généralement des produits tout-en-un et ne nécessitent aucune intégration à d'autres composants, intégration qui serait susceptible de ralentir le processus de développement.

En général, les développeurs recourent à des SDK pour les fonctions simples, notamment la connexion (ouverture de session), les services de localisation et le paiement par appareil mobile. Toutefois, certains SDK permettent de développer des caractéristiques applicatives plus complexes, telles que la réalité augmentée (AR, Augmented Reality) ou virtuelle (VR, Virtual Reality). En simplifiant les processus standard, notamment la création de signatures d'autorisation ou l'interprétation de messages SMS dans des langues ou sur des plateformes natives, les SDK diminuent le nombre d'intégrations complexes.

Différence entre SDK et API

Une interface de programmation d'applications, ou API (Application Programming Interface), consiste en un code qui permet à deux programmes logiciels de communiquer. Elle définit la bonne manière pour un développeur de solliciter des services auprès d'un système d'exploitation ou d'une autre application, et d'exposer des données au sein de contextes différents et par divers canaux.

Lorsqu'un développeur utilise un SDK pour élaborer des applications ou créer des systèmes, ces applications ou systèmes doivent communiquer avec d'autres applications. Un SDK inclut une API qui rend cette communication possible.

Il existe d'autres différences, notamment les suivantes :

  • Les SDK contiennent généralement des API, mais les API ne contiennent pas de SDK.
  • Si une API peut s'utiliser pour la communication, elle ne permet pas de créer d'applications.
  • Les SDK permettent aux développeurs de créer des applications et agissent comme autant de blocs d'assemblage pour le produit logiciel.
  • Les API permettent le fonctionnement de l'application dans le cadre des paramètres du SDK avec lequel elles sont livrées. Elles constituent un code qui définit clairement la communication entre deux applications distinctes.
  • Un SDK constitue l'outil et le composant de code créés à une fin spécifique, tandis que l'API est simplement une interface auprès d'un service.
Cette définition a été mise à jour en mars 2020

Pour approfondir sur Outils de développement