# SDK

> Un kit de código, herramientas y documentación para programar sobre una plataforma.

- Nivel: Intermedio
- Temas: Software
- URL: https://tidbit.legios.com.ar/es/sdk/
- En inglés: [SDK](https://tidbit.legios.com.ar/sdk/)

Un **SDK** (software development kit, kit de desarrollo de software) es un paquete que una plataforma les da a los desarrolladores para que puedan crear software para ella. Suele traer bibliotecas que llamás desde tu propio código, documentación, proyectos de ejemplo y algunas herramientas, como un emulador para probar una app de celular o un programa de línea de comandos para configurar todo. Apple y Google publican SDKs para hacer apps de iPhone y Android; AWS, Stripe y muchos otros publican SDKs para usar sus servicios.

Muchos SDKs son una capa amigable encima de una API. En vez de armar a mano los pedidos HTTP, la autenticación, los reintentos y los códigos de error, llamás a algo como `pagos.crear(monto)` en tu propio lenguaje de programación y el SDK hace el resto. El mismo servicio muchas veces ofrece un SDK por lenguaje: Python, JavaScript, Java, Go, etcétera.

Hay un costo. Un SDK ahorra tiempo y evita errores comunes, pero suma una dependencia a tu proyecto y ata tu código a la forma de trabajar de ese proveedor. Los SDKs que vienen dentro de apps de celular, por ejemplo para publicidad o métricas, también pueden juntar datos de los usuarios, y por eso hoy las tiendas de apps piden declarar qué recolectan.

## Una analogía

El kit de inicio que viene con una cafetera espresso nueva: los filtros justos, un compactador, un cepillito de limpieza y un folleto. Podrías conseguir tus propias herramientas, pero el kit está hecho a medida de esa máquina.

## Para quedarse

- Un paquete de bibliotecas, documentación, ejemplos y herramientas para una plataforma.
- Muchas veces envuelve una API para usarla desde tu propio lenguaje.
- Suele haber uno por lenguaje para el mismo servicio.
- Ahorra tiempo, pero suma una dependencia y te ata al proveedor.

## Para seguir leyendo

- [¿Qué es un SDK? (AWS)](https://aws.amazon.com/es/what-is/sdk/)
- [Kit de desarrollo de software en Wikipedia](https://es.wikipedia.org/wiki/Kit_de_desarrollo_de_software)

## Términos relacionados

- [Paquete](https://tidbit.legios.com.ar/es/packet/): El pedacito en que se corta cada dato de internet antes de viajar.
- [Línea de comandos](https://tidbit.legios.com.ar/es/command-line/): Manejar una computadora escribiendo comandos de texto en vez de hacer clic en íconos.
- [Apple](https://tidbit.legios.com.ar/es/apple/): La empresa que vende el iPhone y la Mac, más los servicios que corren encima.
- [Google](https://tidbit.legios.com.ar/es/google/): La empresa del buscador, que regala casi todo y gana plata con publicidad.
- [Stripe](https://tidbit.legios.com.ar/es/stripe/): Una empresa que deja que sitios y apps cobren online con unas pocas líneas de código.
- [API](https://tidbit.legios.com.ar/es/api/): El menú de cosas que un programa le deja pedir a otro programa.
- [HTTP](https://tidbit.legios.com.ar/es/http/): El idioma de pedido y respuesta que hablan los navegadores y los sitios web.
- [Lenguaje de programación](https://tidbit.legios.com.ar/es/programming-language/): Un idioma escrito y preciso que usamos para darle instrucciones a una computadora.
