Quais são as diferenças entre API e SDK?

Saulo Castro
Sep 4, 2018 · 4 min read
“laptop compute displaying command prompt” by NESA by Makers on Unsplash

Na constante evolução da computação novas terminologias, novos conceitos, métodos e formatos surgem constantemente. Dito isso, as diferenças entre API e SDK é uma dúvida que pode intrigar novos programadores. Neste artigo iremos abordar de forma sucinta as principais diferenças e as características que compõe cada um. Entender essa diferença é crucial para, quando houver a necessidade, saber exatamente qual delas utilizar ou qual delas disponibilizar no seu software. Em meio a tantos materiais é comum surgir essa dúvida, pois geralmente as documentações e/ou tutoriais disponíveis na web, partem do pressuposto que já se saiba de antemão as siglas e termos técnicos.


O que é API

“Uma analogia à API” by: Mr. MacKenty in: Computer Science Wiki

API, do inglês Application Programming Interface pode ser traduzido para o português como, Interface de Programação para Aplicativos. API é um conjunto de bibliotecas, métodos, funções e/ou objetos. Esse conjunto tem como principal função realizar a interligação de dois softwares distintos, permitindo assim a comunicação entre eles. Supondo que precise implementar um novo aplicativo, do qual se faz necessário a utilização do bluetooth para determinada tarefa, ao contrário de implementar toda a funcionalidade que fará acesso ao hardware responsável pela comunicação bluetooth, você pode simplesmente utilizar a API responsável por essa comunicação.


O que é SDK

“Uma Ilustração sobre SDK” by Paul Whitelam in: DocManagement

SDK, do inglês Software Development Kit pode ser traduzido para o português como Kit de Desenvolvimento de Software. É exatamente isso! Um kit que engloba geralmente uma IDE (Integrated Development Environment — Ambiente de Desenvolvimento Integrado), bem como todos os itens necessários para implementação de determinada funcionalidade ou software. Estes itens vão desde documentações sucintas até modelos de códigos prontos e/ou exemplos. É comum também encontrarmos juntamente aos SDK´s, API’s acopladas e muitas das vezes esse é o principal motivo que causa confusão entre os termos.


Contextualizando

“API vs. SDK” by Qiscus in Learn More about Chat SDK and API

Imagine uma casa mobiliada e pronta para morar. Essa casa pode ser facilmente comparada com um SDK. Que dispõe de todos os complementos necessários para a moradia. Assim também funciona um SDK, ele dispõe a você todos os complementos necessários para a implementação de seu software ou funcionalidade. Trazendo para a programação, voltemos a aplicação para smartphone citada acima. Para implementá-la em Android é necessário a SDK, o Android Studio que dispõe de todas as ferramentas necessárias para implementar um aplicativo Android.

Imagine agora um telefone que permite duas residências distintas se comunicarem. A linha telefônica que resulta na comunicação se assemelha a uma API. Ela dispõe dos mecanismos que disponibiliza no fim a comunicação entre dois pontos e nada além disso. A API faz exatamente o mesmo processo, disponibilizando através de sua estrutura uma comunicação entre duas aplicações. A API do Google Tradutor, que fornece uma interface para outros softwares traduzirem, detectarem idiomas e etc, é um ótimo exemplo de API.

Abaixo algumas diferenças entre API e SDK:

  • Em uma SDK pode conter diversas API’s, mas uma API jamais conterá um SDK;
  • O SDK facilita e permite a implementação de uma aplicação;
  • A API integra e facilita a comunicação entre aplicações;
  • O SDK fornece um ambiente integrado de desenvolvimento, compilador, ferramentas de debug e teste, editor visual, ou seja, um ecossistema completo;
  • A API fornece um conjunto de bibliotecas, códigos e funções que expõe funcionalidades para serem utilizadas em aplicações de terceiros.

Agora que entendemos as diferenças entre API e SDK, lembre-se sempre que for trabalhar em uma nova linguagem ou com uma nova funcionalidade, deve-se buscar pela SDK deste. Do contrário se necessita realizar uma consulta a um dado interno ou realizar uma comunicação entre softwares, deve-se buscar entender como funciona a API do mesmo, claro se este mantiver uma. De mesmo modo, se precisar disponibilizar uma nova funcionalidade, linguagem ou ambiente, deve-se buscar uma forma de disponibilizar uma SDK. Agora, se necessita expor dados ou fornecer uma ponte de comunicação com outros softwares, deve-se buscar fazê-lo por meio de uma API.

Se o artigo foi útil e sanou suas dúvidas não se esqueça de compartilhar nas suas redes sociais para ajudar outras pessoas a entender as diferenças entre API e SDK.

Saulo Castro

Written by

Desenvolvedor de Software, eterno aprendiz, entusiasta da vida e apreciador da boa e velha música;

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade