Question

J'essaie d'expliquer à un non-développeur la différence entre une API et un SDK. Je dois expliquer pourquoi un éditeur commercial de logiciels d’empreintes digitales ne fournira probablement pas de SDK, bien qu’il en ait certainement utilisé un.

Les vendeurs de périphériques et de logiciels peuvent et doivent présenter une API bien définie. Cette API permet à d’autres logiciels de (interagir avec) avec les composants logiciels ou les périphériques matériels du fournisseur.

Si quelqu'un a plus d'idées pour expliquer cela clairement, j'apprécierais beaucoup les suggestions. Je tiens à souligner que l'objectif est d'expliquer les concepts à un non-programmeur qui ne connaît pas le jargon des développeurs .

Plus précisément, dans le contexte d’un capteur d’empreintes digitales par rapport à un logiciel d’enregistrement / vérification, voici comment j’ai tenté de l’expliquer:

  

Si je suis un fabricant d’appareil d’empreinte digitale / capteur et non dans le   logiciel d’écriture, les moyens de mieux commercialiser mes   produit sont:

     
      
  1. Assurez-vous que les pilotes de mon périphérique sont installables sur une grande variété de systèmes d'exploitation
  2.   
  3. Définissez et fournissez une API permettant aux développeurs de logiciels d’écrire des programmes (par exemple, pour l’inscription, la vérification) afin de "communiquer" avec   périphérique
  4.   
  5. Développer et fournir un SDK (une étape au-delà d'une API) pour permettre aux développeurs de logiciels d'écrire des programmes qui fonctionnent   avec mon appareil. Les SDK peuvent fournir des bibliothèques de codes auxiliaires, des références   applications, documentation, etc.
  6.   
Était-ce utile?

La solution

Morceau de gâteau:

  • une API est une interface . C'est comme les spécifications du système téléphonique ou le câblage électrique de votre maison. N'importe quoi * peut l'utiliser tant qu'il sait comment interfacer. Vous pouvez même acheter un logiciel standard pour utiliser une API particulière, tout comme vous pouvez acheter du matériel téléphonique standard ou des périphériques qui se connectent au câblage CA de votre maison.
  • un kit de développement logiciel est un outil de mise en œuvre . C'est comme un kit qui vous permet ** de créer quelque chose de sur mesure à connecter au système téléphonique ou au câblage électrique.

* Tout peut utiliser une API. Certaines API comportent des dispositions de sécurité exigeant des clés de licence, une authentification, etc., qui peuvent interdire l'utilisation complète de l'API dans des cas particuliers, mais uniquement parce que certaines étapes d'authentification / autorisation échouent. Tout logiciel présentant les informations d'identification appropriées (le cas échéant) peut utiliser l'API.

** Techniquement, si une API est bien documentée, vous n'avez pas besoin d'un SDK pour créer votre propre logiciel afin de l'utiliser. Mais le SDK facilite généralement beaucoup le processus.

Autres conseils

L'API est comme les éléments constitutifs de certains jeux énigmatiques avec lesquels un enfant joue pour joindre des blocs de différentes formes et créer quelque chose auquel ils puissent penser.

Le Kit de développement logiciel (SDK) , quant à lui, est un véritable atelier dans lequel tous les outils de développement sont disponibles, plutôt que des blocs de construction pré-formés. Dans un atelier, vous avez les outils réels et vous n'êtes pas limité à des blocs, vous pouvez donc créer vos propres blocs ou créer quelque chose sans bloc pour commencer.

coder sans SDK ni API revient à créer de toutes pièces sans atelier - vous devez même créer vos propres outils

Supposons que la société C propose des produits P et P impliquant des logiciels d’une certaine manière. Ensuite, C peut offrir une bibliothèque / un ensemble de bibliothèques aux développeurs de logiciels qui gèrent les systèmes logiciels de P.

Cette bibliothèque / bibliothèques sont un SDK . Il fait partie des systèmes de P. C'est un kit que les développeurs de logiciels peuvent utiliser pour modifier, configurer, corriger, améliorer, etc. le logiciel de P.

Si C souhaite proposer les fonctionnalités de P à d'autres sociétés / systèmes, il le fait avec une API .

C’est une interface avec P. Un moyen pour les systèmes externes d’interagir avec P.

Si vous pensez en termes de mise en œuvre, ils sembleront assez similaires. Surtout maintenant que l'Internet est devenu comme un grand système d'exploitation distribué.

En fait, ils sont en réalité assez distincts.

Vous construisez quelque chose avec un SDK et vous utilisez ou utilisez quelque chose avec une API.

Interface de programmation d'application est un ensemble de routines / structures / classes de données qui spécifie un moyen d'interagir avec la plate-forme / le logiciel cible comme OS X, Android, une application de gestion de projet, un logiciel de virtualisation, etc. <

Alors que Kit de développement logiciel est un wrapper autour des API / s qui facilite la tâche aux développeurs.

Par exemple, le SDK Android permet aux développeurs d’interagir avec la plate-forme Android dans son ensemble, alors que celle-ci est construite à partir de composants logiciels composites communiquant via des API.

De plus, les SDK sont parfois conçus pour faciliter le développement dans un langage de programmation spécifique. Par exemple, le pilote Web Selenium (construit en Java) fournit des API permettant de gérer tout navigateur de manière native, capybara peut être considéré comme un SDK facilitant l'utilisation du pilote Web Selenium par les développeurs Ruby. Cependant, le pilote Web Selenium est également un SDK en lui-même, car il combine une interaction avec divers pilotes de navigateur natifs dans un même package.

Je ne suis pas sûr qu'il existe une définition officielle de ces deux termes. Je comprends qu'une API est un ensemble de bibliothèques programmables documentées et de sources de support telles que des en-têtes ou des fichiers IDL. Les kits de développement contiennent généralement des API, mais ils ajoutent souvent des compilateurs, des outils et des exemples.

API est un cahier des charges expliquant comment faire quelque chose, une interface, telle que "Les voies de chemin de fer sont distantes de 4 pieds et la barre de métal est large de 1 pouce". Maintenant que vous avez l'API, vous pouvez maintenant construire un train qui s'adaptera à ces voies de chemin de fer si vous voulez aller n'importe où. L'API contient uniquement des informations sur la manière de construire votre code. Elle ne fait rien.

Le SDK est un ensemble d’outils qui s’inquiètent déjà des spécifications. "Voici un train, du charbon et un préposé à l'entretien. Utilisez-le pour aller d'un endroit à l'autre " Avec le SDK, vous ne vous souciez pas des détails. Un SDK est un code réel, il peut être utilisé seul pour faire quelque chose, mais bien sûr, le train ne démarrera pas spontanément, vous devez toujours faire appel à un conducteur pour le contrôler.

Les kits de développement logiciel ont également leurs propres API. "Si vous souhaitez alimenter le train, mettez du charbon dedans", "Tirez sur le levier bleu pour déplacer le train", "" si le train commence à être drôle, appelez le responsable de la maintenance ". etc.

API = Dictionnaire des mots disponibles et leur signification (et la grammaire requise pour les combiner)

SDK = Un système de traitement de texte & # 8230; pour les bébés de 2 ans & # 8230; qui écrit à partir d'idées

Même si vous POUVEZ aller à l’école et maîtriser votre langue après quelques années, l’utilisation du SDK vous aidera à écrire des phrases qui ont du sens en un rien de temps (pardonnant le fait que, dans cet exemple, t même appris à apprendre une autre langue pour au moins apprendre à utiliser le SDK.)

Et si vous vouliez installer un système de cinéma maison dans votre maison? Utiliser une API, c'est comme obtenir tous les fils, vis, embouts et pièces. Les possibilités sont infinies (limitées uniquement par les pièces que vous recevez), mais parfois écrasantes. Un SDK, c'est comme avoir un kit. Vous devez encore l'assembler, mais c'est plus comme obtenir des morceaux prédécoupés et des instructions pour une bibliothèque IKEA qu'une boîte de vis.

Vous utilisez un SDK pour accéder aux fonctionnalités d'une bibliothèque et une API pour la contrôler.

API = Interface de programmation d'application SDK = Kit de développement logiciel

Un SDK semble être un ensemble complet de API vous permettant d'effectuer la plupart des opérations nécessaires à la création d'applications. En outre, un SDK peut inclure d'autres outils de développement pour la plate-forme / l'élément auquel il est destiné.

Une API , par contre, n'est qu'une série de méthodes connexes qui peuvent s'avérer utiles. dans un but spécifique.

Par exemple, le JDK (Java Development Kit) contient l’API, ainsi que les compilateurs, les environnements d’exécution et d’autres outils divers. L’API Java est simplement l’ensemble des bibliothèques qui constituent le langage principal avec lequel vous pouvez travailler immédiatement.

Exemples d’API: API Java, API Google Maps, API Flash Player.

Exemples de SDK: JDK, GWT, SDK Flex.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top