Code-Garage #13 - API vs SDK, quelles sont les différences ?

Durée: 5m51s

Date de sortie: 24/02/2022

Après l'épisode sur les bibliothèques vs frameworks, il est temps de se pencher sur deux autres termes souvent mélangé dans notre vocabulaire quotidien.

Notes de l'épisode :

Salut et bienvenue dans ce nouvel épisode de Code Garage. Je m'appelle Nicolas Brondin-Bernard
et aujourd'hui on va parler des différences entre une API et un SDK.
Un petit peu comme on l'a fait dans un précédent épisode entre les frameworks et les bibliothèques,
là on va décrire chaque terme et on va les mettre pas en opposition mais en tout cas on va les comparer.
Alors pour commencer il faut se rappeler que c'est déjà deux mots qui décrivent des solutions logicielles
qui sont utilisées pour faciliter le développement d'applications tout simplement.
Donc c'est des concepts à la base qui sont assez similaires, c'est donc assez normal qui soit confondu
et parfois utiliser un petit peu à tord et à travers notamment pour des raisons de marketing.
Mais ils ont des définitions on va dire et des concepts derrière qui sont quand même différents.
Je vais commencer par l'API. API ça signifie application programming interface.
Une API, ça représente un accès à du code externe dont l'utilisation se fait à travers d'une API simplifiée
comme le nom l'indique et qui permet d'étendre les fonctionnalités d'un logiciel.
Le mot clé ici c'est externe parce que l'API est l'indépendante du logiciel dans lequel elle est utilisée.
Elle est mise à disposition par l'environnement au sens large dans lequel tourne tout simplement le logiciel.
Alors ça va dépendre du logiciel, ce qui fait être sans contexte.
On va avoir par exemple le navigateur qui met à disposition des web APIs,
le réseau internet pour des APIs restent, saup, GraphQL etc.
ou le système d'exploitation pour des APIs de gestion de fichiers etc.
Quand on utilise une API, on dit qu'on la consomme.
C'est ça qui met bien en avant le côté indépendant d'une API par rapport à SDK.
Le SDK maintenant, si on donne cette définition, ça signifie software development kit.
Un SDK, ce n'est pas seulement un morceau logiciel mais c'est un kit complet.
Il peut faciliter par exemple l'accès à une ou plusieurs APIs.
Il peut fournir un ensemble de bibliothèques, de la documentation, des exemples etc.
On vient intégrer un SDK à notre logiciel parce qu'il est développé spécifiquement
pour la plateforme sur laquelle on développe.
D'ailleurs, il existe souvent plusieurs SDK disponibles pour une seule API
selon la plateforme ciblée tout simplement.
Si on prend un exemple concret avec le service Firebase de Google,
il y a une API qui s'appelle Firestore,
notamment qui permet de stocker des données depuis une application.
Pour cette API Firestore qui est disponible sur internet, sur le web on va dire,
il existe trois SDK différents.
Il existe un SDK pour le web, un pour Android et un pour iOS
qui sont écrits dans trois langages différents
et qui vont être intégrés à chaque projet pour discuter justement avec l'API
et faciliter le développement.
Donc si on prend les différences majeures, je pense que vous l'avez compris,
une API et un SDK, ça présente deux différences majeures.
Une API reste externe à l'application et elle peut être développée dans n'importe quel langage
tandis que le SDK doit être intégré à l'application
et il est spécifiquement développé pour la plateforme qu'on utilise.
Une API, c'est une abstraction de code complexe qui expose des fonctionnalités
et souvent ciblée sur un domaine en particulier.
Un SDK, c'est une abstraction de nombreux outils et ressources
dont parfois plusieurs APIs.
On peut par exemple prendre l'exemple d'une API de gestion du son.
L'API va être abstraite dans un SDK pour le développement de jeux vidéo
qui va rassembler des APIs pour le son, pour le graphisme, pour la physique, etc.
Pour mieux comprendre et redonner une image finale,
imaginez votre smartphone comme si c'était une API.
Il offre des fonctions utiles et spécifiques pour passer des appels,
envoyer des messages, prendre des photos, naviguer sur Internet.
Vous n'avez pas besoin de savoir comment il fonctionne à l'intérieur
parce que le constructeur a créé une interface simple et intuitive,
une abstraction, pour interagir avec.
Vous n'avez pas besoin de connaissances en bande GSM
pour pouvoir passer un appel, juste un clic sur une icône suffit.
Votre téléphone, c'est une API.
Mais vous n'avez pas seulement acheté un téléphone,
vous avez acheté tout un kit.
Ce kit contient l'API mais il contient le manuel utilisateur,
un chargeur conforme, des écouteurs
pour faciliter notamment l'utilisation de la partie audio,
une coque, une vide de protection pour sécuriser votre usage
avec la partie graphique et pas faire n'importe quoi, etc.
La boîte entière de votre smartphone et tout ce qu'elle contient,
ça pourrait faire office de SDK pour le téléphone.
Donc, évidemment, il est possible d'utiliser votre smartphone sans tout ça,
mais l'utilisation est plus pratique, plus facile et plus sécurisée
avec tous les outils qui sont prévus dans le kit.
Alors évidemment, il ne faut pas prendre cet exemple au pied de la lettre
parce qu'on parle aussi d'API, d'SDK, etc.
Pour les téléphones mobiles sous Android, soit iOS.
Mais c'était pour vous donner un petit peu un exemple
si on ramenait le concept de SDK et d'API
dans un objet de la vraie vie et donner un petit peu une différence.
J'espère que cet épisode vous a été utile
et moi je vous retrouve très bientôt pour un nouvel épisode de Codegarage. Salut !

Les infos glanées

Je suis une fonctionnalité encore en dévelopement

Signaler une erreur

Code-Garage

Découvrons ensemble des sujets passionnants autour du métier de dev et de la programmation en général !
Tags
Card title

Lien du podcast

[{'term': 'Technology', 'label': None, 'scheme': 'http://www.itunes.com/'}]

Go somewhere