DEV Community

Cover image for SDK: as ferramentas para seu código se conectar com o mundo
Giovana Armani for AWS

Posted on

SDK: as ferramentas para seu código se conectar com o mundo

Se você já tentou integrar sua aplicação com serviços externos como serviços de nuvem, aplicativos de localização, autenticação ou pagamento, provavelmente já usou um SDK sem nem perceber. Mas afinal, o que é um SDK e por que ele é importante para nós desenvolvedores?

O que é SDK?

SDK significa Software Development Kit (em português Kit de Desenvolvimento de Software). Gosto de pensar nele como uma caixa de ferramentas para construir aplicações sobre uma plataforma, sistema operacional ou linguagem de programação.

Caixa de ferramentas com ferramentas dentro com tags de APIs, bibliotecas, exemplos de código, documentação

Um SDK geralmente inclui:

  • Bibliotecas de código prontas para usar
  • APIs para comunicação com serviços (leia mais sobre o que é uma API nesse link)
  • Documentação detalhada
  • Exemplos de código práticos
  • Ferramentas de desenvolvimento (debuggers, compiladores, etc.)

Por que SDKs existem?

SDKs existem para acelerar o desenvolvimento e reduzir a complexidade. Eles reunem toda a lógica complicada de integração, permitindo que você foque na funcionalidade da sua aplicação.

Vamos imaginar, por exemplo, que você está construindo um sistema de vendas e quer adicionar a possibilidade de pagamentos. Ao invés de programar essa funcionalidade do zero e ainda fazer as integrações com sua aplicação, você pode usar um SDK!

Fluxo de uso de um SDK

Usando em código, um o uso de um SDK de pagamentos, como o do Paypal, se pareceria com algo assim:

// Importar o SDK do PayPal
import paypal from '@paypal/checkout-server-sdk';

// Configurar o SDK com suas credenciais
const idCliente = '<seu-id-cliente>';
const segredoCliente = '<seu-segredo-cliente>';
const ambiente = new paypal.core.SandboxEnvironment(idCliente, segredoCliente);
const cliente = new paypal.core.PayPalHttpClient(ambiente);

// Criar um pedido de pagamento
async function criarPagamento() {
    const requisicao = new paypal.orders.OrdersCreateRequest();

    requisicao.requestBody({
        intent: 'CAPTURE',
        purchase_units: [{
            amount: {
                currency_code: 'USD',
                value: '29.99'
            },
            description: 'Assinatura Premium'
        }]
    });

    // O SDK cuida da requisição HTTP, autenticação e resposta
    const resposta = await cliente.execute(requisicao);

    console.log('Pagamento criado:', resposta.result.id);
    return resposta.result;
}

criarPagamento();
Enter fullscreen mode Exit fullscreen mode

Sem um SDK, você precisaria manualmente lidar com requisições HTTP, gerenciar autenticação, tratar erros e muito mais. O SDK faz tudo isso por você!

Qual é a diferença entre SDK, API e Bibliotecas?

Começando com as definições, já vimos que um SDK é kit de desenvolvimento com várias ferramentas. Uma API é um contrato de comunicação entre programas que especifica como informações vão ser passadas entre eles. Por último, uma biblioteca é um conjunto de funções que podem ser reutilizadas por vários programas.

Passando para um exemplo do mundo real, imagine que o mundo dos códigos seja um restaurante. Bibliotecas são os livros de receita que ensinam a fazer pratos específicos. As APIs são o cardápio que mostram o que um cliente pode pedir e como. Já o SDK é a cozinha completa com várias ferramentas para preparar o que você quiser.

Analogia da cozinha ilustrada

Na imagem acima, as bibliotecas estão dentro das APIs que estão dentro dos SDKs, mas lembre-se que elas podem existir independentemente tambem.

Resumindo:

SDK API Biblioteca
O que é Kit completo de ferramentas para desenvolvimento Contrato de comunicação entre programas Coleção de funções reutilizáveis
Propósito Facilitar desenvolvimento para uma plataforma Permitir integração entre sistemas Resolver problemas específicos
Exemplos SDK do Google para Android, Stripe SDK para pagamentos, SDK do Facebook, SDK do Arduino para IOT REST API do Twitter, Web API do Spotify, API do Github, API da NASA Pandas (manipulação de dados com python), Lodash (utilitários do javascript), Gson (manipulação de json em java), NLog (registros de log para C# e .NET)

Aspectos essenciais de um SDK

Ao escolher um SDK para usar no seu projeto, é importante considerar:

1. Licença

  • É open source ou proprietário? SDKs open source são livres para ser usados por todos (e você pode até colaborar com a construção deles!), já os proprietários, é possível que você precise de permissão para usar
  • Quais são as restrições de uso?
  • Há custos associados?

2. Documentação

  • A documentação é clara e completa?
  • Existem exemplos práticos?
  • Há guias de início rápido?

3. Compatibilidade

  • Funciona com a linguagem que você está usando?
  • É compatível com as versões que você tem dessa linguagem?
  • Suporta as plataformas que você precisa (web, mobile, server)?

4. Suporte

  • Há uma comunidade ativa?
  • O SDK é mantido regularmente?
  • Existe suporte oficial?

5. Segurança

  • Como as credenciais são gerenciadas?
  • Há atualizações de segurança regulares?

Próximos passos

Agora você já sabe o que é um SDK e como ele difere de APIs e bibliotecas! SDKs são ferramentas poderosas que economizam tempo e reduzem a complexidade ao integrar sua aplicação com plataformas externas.

No meu último artigo, usei o SDK da AWS para construir uma aplicação com função Lambda do zero (veja no artigo o passo a passo) e nem contei pra vocês! Na próxima semana, vamos explorar ainda mais o SDK da AWS para javascript!

Top comments (0)