Les API représentent la communication entre différents composants logiciels, tandis que les SDK représentent une boîte à outils complète qui contient des API pour une tâche spécifique
Un écosystème de développeurs fonctionne sur la base de deux outils fondamentaux, un SDK et une API. Aujourd'hui, il est essentiel de comprendre les différences fondamentales, car la communauté des développeurs utilise largement ces deux outils dans le processus moderne de développement de logiciels
Le paysage du développement est alimenté par ces deux ingrédients. Les SDK et les API sont les principaux moteurs de la mise en œuvre d'API tierces et de la communication web
Essentiellement, le SDK et l'API permettent d'améliorer les fonctionnalités et les performances globales de votre application. Toutefois, pour améliorer l'expérience des équipes internes et des utilisateurs finaux, il est inévitable d'apprendre comment ces outils fonctionnent, en quoi ils sont différents et comment ils contribuent au processus de développement logiciel
Examinons de plus près chacun de ces outils
Qu'est-ce qu'un SDK ?
SDK est l'acronyme de "Software Development Kit" (kit de développement logiciel), également appelé "devkit". Le SDK est défini comme un ensemble d'outils de construction de logiciels spécifiques aux plateformes. Ces outils comprennent des débogueurs, des compilateurs, des bibliothèques de code (c'est-à-dire un cadre) ou des routines et des sous-programmes destinés à un système d'exploitation
Les éléments constitutifs d'un kit de développement logiciel typique sont les suivants
- Débogueur: Un débogueur permet aux développeurs d'identifier et de corriger les erreurs dans le code du programme.
- Compilateur: Un compilateur est un programme qui traite les déclarations du langage de programmation et les traduit en langage compréhensible par la machine ou "code" utilisé par le processeur.
- Leséchantillons de code révèlent des tâches de programmation ou des scénarios qui donnent une image plus claire d'une application ou d'une page web.
- Routines et sous-programmes: Une routine ou un sous-programme est une méthode, une fonction, une procédure, un sous-programme ou un code qui peut être appelé et exécuté n'importe où dans l'ensemble du code du programme. Par exemple, l'option d'enregistrement d'un fichier est exécutée via une routine.
- Bibliothèque de codes: Une bibliothèque de code permet aux développeurs d'utiliser des ressources existantes (par exemple, des séquences de code) plutôt que de les réinventer.
- Outils de test et d'analyse: Ces outils évaluent les performances de l'application dans un environnement de test et de production.
- Documentation: Les développeurs se réfèrent à des instructions documentées (si nécessaire) au cours du processus de développement.
En général, un SDK comporte au moins une API, car les applications ne peuvent pas interagir, se relayer, fonctionner ou collaborer sans l'API
Comment fonctionne un SDK ?
Les SDK fournissent une série d'outils nécessaires aux développeurs pour créer facilement des applications logicielles
Par exemple, Facebook fournit des kits de développement logiciel pour Android de Google et iOS d'Apple. Ces SDK sont des bibliothèques open-source qui permettent d'intégrer Facebook dans votre application Android ou iOS. Par ailleurs, Microsoft propose le SDK du cadre .NET pour les applications à grande échelle. Il contient des échantillons, des outils et des bibliothèques essentiels au développement d'applications pour Windows
Maintenant que vous connaissez les détails des SDK, nous allons en comprendre le fonctionnement
- Au départ, vous achetez, téléchargez et installez le "kit" requis pour votre plateforme. Il peut s'agir de télécharger des fichiers comprenant des éléments constitutifs, des jeux d'instructions et des exemples.
- Ensuite, vous pouvez accéder à tous les outils nécessaires, à l'environnement de développement intégré (IDE) pour développer une nouvelle application. Ensuite, les développeurs peuvent commencer à coder leurs applications. Le rôle du compilateur devient évident à ce stade.
- Enfin, vous pouvez utiliser des instructions, de la documentation, des échantillons de code et des outils d'analyse pour tester la nouvelle application.
Une fois ces étapes franchies, vous pouvez commencer à utiliser votre SDK
Types de SDK
Les développements d'applications web et mobiles reposent sur les SDK. Examinons quelques-uns des types de SDK les plus courants
- SDKde plateforme: Ces SDK sont les composants clés nécessaires au développement d'applications pour n'importe quelle plateforme. Par exemple, le SDK Windows 10 est utilisé pour développer des applications Windows 10 Store.
- SDKd'extension: Il s'agit de SDK optionnels utilisés pour étendre et personnaliser l'environnement de développement. Toutefois, ils ne sont pas indispensables pour développer des applications pour une plateforme particulière.
- SDKspécifiques aux langages de programmation: Ces SDK sont utilisés pour développer des programmes dans des langages spécifiques. Par exemple, le kit de développement Java (JDK) est utilisé pour développer des applications utilisant le langage de programmation Java.
- SDKanalytiques: Ces SDK collectent des données telles que les comportements des utilisateurs, leurs actions, etc. Par exemple, le SDK Analytics de Google.
- SDK demonétisation: Ces SDK sont utilisés par les développeurs pour déployer des publicités qui sortent des applications existantes. Ils sont mis en place dans le seul but de générer des revenus.
Avantages des SDK
Les SDK présentent plusieurs avantages pour la communauté des développeurs. Tout d'abord, ils n'ont pas besoin de travailler dur pour développer des applications grâce à l'utilisation efficace des kits de développement logiciel
- Accès à des pièces préfabriquées : Les kits de développement logiciel permettent d'accéder facilement à des éléments préfabriqués, réduisant ainsi le temps consacré au développement de logiciels. Par exemple, le SDK Android map vous permet de configurer et de déployer divers services de localisation dans votre application. Le SDK facilite l'accès aux éléments constitutifs et les rassemble dans l'application (par exemple, les coordonnées de localisation telles que la longitude, la latitude, les services à l'intérieur d'un lieu spécifique).
- Intégrations transparentes: Les SDK permettent une intégration plus aisée avec différents logiciels et applications. Ils permettent également d'accéder directement aux informations requises grâce à une documentation appropriée.
- Fournir des raccourcis aux développeurs: Les SDK permettent aux développeurs de réutiliser des séquences de code, ce qui raccourcit le cycle de développement. Les développeurs disposent ainsi de beaucoup de temps pour se concentrer sur les tâches essentielles.
- Support intégré: Les SDK sont dotés d'une expertise en matière de code intégré (support), y compris une documentation complète. Ainsi, les développeurs n'ont pas besoin de chercher des experts dans le domaine pour résoudre leurs questions.
- Prix abordable: Les facteurs mentionnés ci-dessus permettent d'éviter les dépenses excessives liées au développement de logiciels et aux phases de post-déploiement.
Passons maintenant au composant API intermédiaire
Qu'est-ce qu'une API ?
API est l'acronyme de "Application Programming Interface" (interface de programmation d'applications). Elle élabore un ensemble de règles à l'aide desquelles les plateformes, les appareils ou les applications se connectent et communiquent entre eux. L'API peut faire partie d'un kit de développement logiciel (SDK) ou exister indépendamment. Dans les deux cas, elle établit une synchronisation systémique entre diverses applications
Les développeurs tirent le meilleur parti des logiciels non libres (propriétaires) ou basés sur l'informatique en nuage pour créer des API efficaces. Ils peuvent ensuite exploiter les services auxquels les utilisateurs peuvent accéder via les API construites
L'API est analogue à un accord entre deux parties. Elle permet l'échange instantané d'informations et fournit des lignes directrices sur la manière dont les informations doivent être communiquées
Certaines API sont connues pour fournir une "interface", c'est pourquoi "API" et "interface" sont vaguement considérées comme les mêmes entités
Composants clés
L'API se compose de deux éléments clés
- Les spécifications techniques : Les spécifications d'une API font référence aux informations relatives aux protocoles d'intégration de l'API (c'est-à-dire avec d'autres plates-formes, applications). Elles doivent être bien documentées pour garantir une utilisation efficace de l'API.
- L'interface : L'interface fournit une voie d'accès aux API. On peut y accéder par un mot-clé s'il s'agit d'une API web ou par une interface distincte.
Voyons maintenant comment fonctionne une API typique
Comment fonctionne une API ?
Les API permettent un dialogue fluide entre différents ensembles d'applications
Prenons l'exemple d'une application de vente de produits d'épicerie qui permet aux utilisateurs de rechercher et d'acheter des produits d'épicerie en ligne. Votre application fournit déjà ce service. Supposons maintenant que les utilisateurs souhaitent également rechercher des épiceries à un endroit précis de la ville. Dans ce cas, vous pouvez intégrer votre application aux fournisseurs de services d'épicerie établis dans la ville. En déployant l'API de géolocalisation, vous permettez aux utilisateurs de rechercher des épiceries sans avoir à se préoccuper d'une application de géolocalisation distincte
D'un point de vue technique, un appel API suit les étapes suivantes
- Un utilisateur initie la tâche à partir de votre application en créant une requête.
- L'API relaie la demande en lançant un appel au serveur web. L'API sait où envoyer la demande, car celle-ci est généralement destinée à atteindre le point de terminaison de l'API. L'URL du serveur définit le point de terminaison.
- Enfin, la tâche est accomplie lorsque la base de données ou l'application tierce fournit le service demandé.
Types d'API
REST (Representational State Transfer) : Les API REST sont l'un des types d'API les plus populaires, dans lequel l'API doit adhérer à un ensemble de principes tels que
- Architecture client-serveur : Les modifications apportées au serveur ne doivent pas affecter le client
- Communication entre le client et le serveur via HTTP, CRUD (Créer, Lire, Mettre à jour, Supprimer) et JSON.
- L'apatridie : L'état du client n'est pas stocké sur le serveur entre deux requêtes.
REST est généralement utilisé pour transférer des données. Par exemple, l'API Facebook est utilisée pour obtenir le nom, la localisation et la photo de profil d'un utilisateur de Facebook dans une autre application
RPC (Remote Procedure Call) : Il est utilisé pour exécuter du code sur un autre système. Contrairement à REST, où le client ne demande que des données, RPC appelle des méthodes. Les demandes peuvent être envoyées au format XML ou JSON et sont appelées XML-RPC et JSON-RPC. L'expéditeur de la demande attend une réponse de l'autre système après l'exécution de la méthode
Par exemple, une API de passerelle de paiement authentifie un numéro de carte de crédit (exécute un code à sa fin) et envoie une réponse de succès ou d'échec à l'application appelante
API SOAP (Simple Object Access Protocol): Il s'agit d'API basées sur le web, utilisées dans les cas où la confidentialité et la sécurité des données doivent être renforcées. Elles peuvent communiquer via des protocoles web tels que HTTP, SMTPTCP/IP, etc.
SOAP est un ensemble de protocoles, tandis que REST est un modèle architectural. Il est donc possible de créer des API RESTful à l'aide de protocoles basés sur SOAP
Avantages de l'API
Les API sont bénéfiques pour les deux groupes, les utilisateurs ordinaires et les professionnels du développement. Les développeurs peuvent se connecter aux parties prenantes de l'entreprise pour mettre à jour les systèmes de l'agence et développer le potentiel commercial de l'agence
Bien que les avantages puissent être perçus du point de vue du développeur, les API amplifient à la fois l'expérience du développeur et celle de l'utilisateur final. Passons en revue quelques-uns des avantages offerts par les API
- Intégration: Les API relient des applications logicielles disparates et améliorent les performances globales de l'application ou du produit.
- Faciliter le cycle de développement: Les API aident les développeurs à raccourcir le cycle de développement des logiciels. L'automatisation des API est la clé, car les ordinateurs sont utilisés pour gérer le travail plutôt qu'une force de travail manuelle. Les API permettent aux entreprises de mettre à jour leurs flux de travail en une seule fois.
- Efficacité: Grâce à l'accès aux API, le contenu généré peut être facilement partagé et redistribué sur différents canaux.
- Personnalisation: Les API permettent des personnalisations. Tout utilisateur ou entreprise peut en tirer parti en personnalisant le contenu ou les services en fonction de ses besoins.
La différence entre un SDK et une API
Comprenons la différence entre ces deux éléments à l'aide d'exemples
Facebook propose un ensemble de solutions qui offrent des outils aux développeurs professionnels ainsi qu'aux utilisateurs actifs. Il dispose à la fois d'une API et d'un SDK. Ces deux outils sont habilités à exécuter des fonctionnalités différentes et sont spécifiques à un cas d'utilisation. Nous commencerons par les API
Les API de Facebook
En partenariat avec des développeurs tiers, les API Facebook se connectent à Facebook et accèdent aux données nécessaires concernant un utilisateur. Ces données sont utilisées pour personnaliser les fonctions de l'application
Par exemple, une application de réservation de films utilise l'API Facebook pour vous permettre de vous connecter à l'application à l'aide de votre identifiant Facebook. Votre nom et les détails de votre profil sont communiqués à l'application de réservation de films pour garantir l'authenticité de l'utilisateur et vous éviter d'avoir à vous souvenir d'un identifiant et d'un mot de passe distincts. Cela permet également à l'application de réservation de films de vous montrer des publicités pertinentes lorsque vous naviguez dans votre fil d'actualité Facebook
L'un des atouts de l'API est qu'elle est couplée à un explorateur Graph API. Le service Graph API crée des données relationnelles entre les utilisateurs, les comptes, les mises à jour, les groupes, etc.
GET graph.facebook.com/me?fields=posts.limit(5){message}
Nous observons ici un exemple d'émission d'API pour une meilleure compréhension. L'appel ci-dessus permet de récupérer jusqu'à cinq messages que vous avez publiés et le texte de chacun d'entre eux
Prenons un autre exemple
GET graph.facebook.com/me?fields=posts.limit(5){message,privacy{value}}
La requête API ci-dessus renvoie le texte et les paramètres de confidentialité de chaque message que vous avez publié
Les deux API sont exécutées dans le cadre de l'API graphique, ce qui facilite la génération d'analyses (c'est-à-dire de données relationnelles)
Bien que l'exemple ci-dessus soit un cas d'utilisation simple, considérez un autre scénario dans lequel un propriétaire de restaurant souhaite dresser la liste des utilisateurs qui ont participé à une fête dans son établissement. Le propriétaire pourrait utiliser un appel à l'API Facebook et générer une liste des utilisateurs présents lors de la fête en accédant aux photos prises lors de la fête et aux utilisateurs Facebook marqués
En outre, les responsables du restaurant pourraient également disposer d'une liste des comptes sociaux des utilisateurs et les utiliser pour de futures promotions. Sans API, il peut être difficile de développer de telles fonctionnalités. Nous allons maintenant nous pencher sur les SDK de Facebook
SDK de Facebook
Les SDK fournis par Facebook sont spécifiquement conçus pour la "création d'applications". Par exemple, il existe de nombreux jeux auxquels vous pouvez jouer dans l'application Facebook. Ils sont conçus pour fonctionner dans Facebook et vous avez besoin d'un SDK pour créer ces applications
Examinons le SDK Facebook pour iOS. Il permet de développer des applications Facebook pour iOS en particulier
Examinez l'extrait de code suivant qui présente le SDK Facebook pour iOS
/**
* Pour plus de détails, veuillez consulter :
* developers.facebook.com/docs/reference/ios/current/class/FBSDKAppEvents
*/
–
(void)applicationDidBecomeActive :(UIApplication *)application {
[FBSDKAppEvents activateApp] ;
}
L'exemple ci-dessus est utilisé pour enregistrer les événements liés aux activations d'applications
La structure de l'appel varie dans les deux cas. Une API exécute une action prédéfinie via des sources et des fonctions existantes. Au contraire, le SDK définit d'abord la fonction, puis appelle la source et la fonction
Choisir entre un SDK et une API
Les API décrivent essentiellement la manière dont des plateformes disparates peuvent travailler ensemble de manière synchrone. Elles contribuent à l'intégration des applications par le biais de protocoles et de spécifications. Elles constituent donc l'un des éléments essentiels d'un kit de développement logiciel. Les API ne peuvent toutefois pas être utilisées pour créer des applications à partir de zéro
Les SDK facilitent la création d'une nouvelle application ou d'un logiciel spécifique à un langage de programmation ou à une plateforme. Un SDK possède généralement au moins une API pour communiquer avec l'extérieur
Si vous créez une application destinée à fonctionner sur une plateforme spécifique, comme iOS, utilisez le SDK de cette plateforme. Pour communiquer avec d'autres applications web comme Facebook, utilisez l'API de cette application
Conclusion 👨🏫
En résumé, la différence entre un SDK et une API est mise en évidence dans les postulats suivants
- Les SDK contiennent souvent des API, mais aucune API ne comprend de SDK.
- Comme les fondations d'une maison qui permettent à celle-ci de tenir debout, les SDK permettent la création d'applications.
- Les API déterminent le fonctionnement et la communication des applications au sein des SDK, à l'instar des lignes téléphoniques qui permettent d'entrer en contact avec le monde extérieur.