Um kit de desenvolvimento de software (SDK) é um conjunto de ferramentas fornecidas pelo fabricante de (geralmente) uma plataforma de hardware, sistema operacional (SO) ou linguagem de programação. Os SDKs ajudam os desenvolvedores a criar aplicativos específicos para essa plataforma, sistema ou linguagem de programação. Pense nisso como o saco plástico com ferramentas que vem embalado com as peças de uma cômoda que você comprou para montar sozinho. Você tem o que precisa para fazer o trabalho, e o que está incluído no kit varia de fabricante para fabricante.
Normalmente, um SDK básico inclui um compilador, um depurador e interfaces de programação de aplicativos (APIs), mas eles também podem incluir qualquer um dos seguintes:
- Documentação
- Bibliotecas
- Editores
- Ambientes de tempo de execução / desenvolvimento
- Ferramentas de teste / análise
- Drivers
- Protocolos de rede
Um bom SDK fornecerá todos os componentes que um desenvolvedor pode achar necessário ao criar aplicativos para aquele produto específico. Alguns SDKs também incluem um exemplo ou projeto de teste básico para ajudar os desenvolvedores a começar o mais rápido possível.
Alguns exemplos de kits de desenvolvimento de software são o kit de desenvolvimento Java (JDK), o SDK do Windows 7, os MacOs X SDK e o iPhone SDK. Como um exemplo específico, o SDK do operador Kubernetes pode ajudá-lo a desenvolver seu próprio operador Kubernetes. Ele contém APIs de alto nível, ferramentas para scaffolding e geração de código, e extensões para cobrir casos de uso comuns de operadores.
Uma API é incluída na maioria dos SDKs para conectar novos aplicativos ou projetos no nível do texto de origem. Eles também costumam incluir código de amostra, que fornece aos desenvolvedores programas e bibliotecas de exemplo para ajudá-los a aprender como construir programas básicos. A partir daí, eles podem prosseguir para o desenvolvimento de aplicativos mais complexos.
Alguns SDKs incluem documentação sobre como usar as APIs, bem como tutoriais, perguntas frequentes e gráficos de amostra, já que às vezes pode demorar um pouco para um desenvolvedor aprender como usar um novo SDK. Por esse motivo, uma interface de programação intuitiva (ou documentação mais extensa) é útil para incentivar os desenvolvedores a usar o programa específico de uma empresa em vez da opção de um concorrente.
Da mesma forma, um SDK pode ser uma ótima maneira para uma empresa para apresentar seus produtos aos desenvolvedores e incentivá-los a criar aplicativos usando sua plataforma ou sistema operacional. Por esse motivo, a maioria dos SDKs é gratuita – um desenvolvedor pode simplesmente fazer o download e começar a programar imediatamente.
Alguns pontos a serem considerados
Alguns SDKs podem ter regras ou acordos que devem ser reconhecidos e submetidos antes de serem usados – especialmente para novos produtos em estágio alfa ou beta – ou para software com algoritmos que não são divulgados ao público (não de código aberto). Um SDK também pode estar sujeito a um contrato de licença, de modo que o software criado não seja lançado sob uma licença incompatível.
Um desenvolvedor precisa levar isso em consideração ao escolher com qual SDK começar a trabalhar. Por exemplo:
- Um SDK com licença proprietária é incompatível com o desenvolvimento de software de código aberto.
- SDKs com Licença Pública Geral (GPL) não funcionam para desenvolvendo aplicativos proprietários
- Existem ressalvas para trabalhar em torno de uma Licença Pública Geral Menor (LGPL) para projetos com elementos de código proprietários.
Por que escolher a Red Hat?
Os aplicativos de código aberto são desenvolvidos continuamente, por amadores e profissionais, porque seus SDKs permitem a codificação de novos designs e expansões de funcionalidade, que são então compartilhados com o resto da comunidade.
A Red Hat reúne as melhores ferramentas, soluções e serviços no desenvolvimento de aplicativos, e fazemos isso de forma open source. Esteja você procurando por uma plataforma para construir seu aplicativo (Red Hat OpenShift), um ambiente de tempo de execução para construí-los (Red Hat Runtimes) ou um ambiente de desenvolvimento com todas as ferramentas necessárias para desenvolver, testar e implantar aplicativos ( Red Hat CodeReady Studio), a Red Hat ajuda você.