SDK Y APIS 
Published: 2022-02-11 11:34:18

En el desarrollo de software moderno, el **[SDK](https://www.codigoencasa.com/ghost/#/editor/post/6202450766777004bcab96fa)** y la **[API](https://codigoencasa.com/api-con-javascript/)** son dos herramientas principales con las que te encontrarás con frecuencia. 
Tienen mucho en común, y a veces hay confusión sobre lo que hace cada una. En esencia, tanto el SDK como la API te permiten mejorar la funcionalidad de tu aplicación con relativa facilidad. Para cumplir la promesa de cualquiera de ellas o de ambas, y mejorar la experiencia tanto interna como de los usuarios finales, es importante entender cómo funcionan ambas herramientas en el **backend**, _en qué se diferencian_ y cómo contribuyen al proceso general de desarrollo.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kykkhrkltod0d2xmbt0g.png)
 
## Qué es un SDK?

SDK significa _kit de desarrollo de software._ También conocido como **devkit**.
El SDK es un conjunto de herramientas de construcción de software para una plataforma específica, que incluye los bloques de construcción, depuradores y, a menudo, un marco o grupo de bibliotecas de código, como un conjunto de rutinas específicas de un sistema operativo (SO).

Un SDK típico puede incluir **algunos o todos estos recurso**s en su conjunto de herramientas:

**Compilador:** Traduce de un lenguaje de programación al que se va a trabajar
**Muestras de código:** Ofrecen un ejemplo concreto de una aplicación o página web
**Bibliotecas de código _(framework)_:** Proporcionan un atajo con secuencias de código que los programadores utilizarán repetidamente
**Herramientas de prueba y análisis:** Proporcionan información sobre el rendimiento de la aplicación o el producto en entornos de prueba y producción
**Documentación:** Proporciona a los desarrolladores instrucciones que pueden consultar sobre la marcha
**Depuradores:** Ayudan a los equipos a detectar errores en su código para que puedan publicar un código que funcione como se espera.
A menudo, el **SDK **incluye también al menos una **API**, ya que sin ella las aplicaciones no pueden transmitir información ni trabajar juntas.

{% youtube ImercojO_DI %}

## Cómo funciona un SDK
Los SDK proporcionan una amplia colección de herramientas que permiten a los desarrolladores de software crear aplicaciones de software más rápidamente y de forma más estandarizada.

El desarrollo de aplicaciones móviles nativas en la nube, por ejemplo, aprovecha los _SDK de iOS de Apple o los SDK de Android de Google_ para esa plataforma. 
Para las aplicaciones a mayor escala, como el software como servicio (_SaaS_) de las empresas y las aplicaciones de software de escritorio y web patentadas, Microsoft proporciona el _SDK .NET_ de código abierto que se utiliza habitualmente.

> La sencillez de un SDK es tan valiosa como las herramientas del kit. 

## El funcionamiento es el siguiente:

* Compre, descargue e instale el "kit" correspondiente a su plataforma (_por ejemplo, piezas prefabricadas, ejemplos e instrucciones)._
* Abre y aprovecha las API y todas las herramientas de desarrollo que necesites para crear una nueva aplicación, empezando por el entorno de desarrollo integrado (IDE). _Este es el espacio donde harás la codificación real y donde está tu compilador._
* Utiliza las instrucciones, la documentación, los ejemplos de código y las herramientas de prueba para realizar la construcción, lo que te dará a ti y a tu equipo una buena ventaja.

## Casos de uso del SDK

Los SDK de lenguajes de programación específicos, como el **JSON** y el **Java Developer Kit (JDK)**, se utilizan para desarrollar programas en esos lenguajes de una manera racionalizada y estandarizada.

Los SDK de análisis de Google y otros proporcionan datos sobre los comportamientos, rutas y acciones de los usuarios.

Los SDK de monetización de _Google, Facebook_ y otros facilitan a los desarrolladores el despliegue de publicidad en sus aplicaciones existentes, con el objetivo de generar ingresos.

## 
Ventajas del SDK

**Proporcionan acceso a los componentes e instrucciones para el desarrollo de software:** 
Un SDK para comercios, por ejemplo, que recoge todo lo que se desea en la aplicación _(favoritos, carrito, guardar para más tarde, pago, etc.)._

**Integraciones más rápidas y fluidas:** Los SDKs simplifican los procesos estándar necesarios y proporcionan un fácil acceso a la información necesaria.

**Ciclo de desarrollo más corto**, consiguiendo que los productos se desplieguen y lleguen al mercado de forma más eficiente:  Dado que un SDK está construido para informar, equipar y proporcionar atajos para el desarrollo, los desarrolladores pueden centrarse en el desarrollo del producto que han planeado.

**Asistencia y experiencia integradas:** No es necesario buscar respuestas o contratar a alguien para aumentar el equipo; los SDK vienen precargados con experiencia en el código ya escrito y la documentación de apoyo incluida.

**Control de costes: **Todo lo anterior le permite ceñirse mejor a un presupuesto establecido durante el desarrollo y después del despliegue.

_Ahora vamos a ver cómo funciona ese intermediario, la API._

**¿Qué es una API?**

_API significa interfaz de programación de aplicaciones._ Tanto si funciona como una solución independiente como si está **incluida en un SDK**, una [API](https://codigoencasa.com/api-con-javascript/) facilita la comunicación entre dos plataformas.

Lo hace permitiendo que su software propietario sea aprovechado por desarrolladores de terceros. Los desarrolladores pueden entonces permitir a sus propios usuarios utilizar indirectamente el servicio o los servicios **proporcionados por la solución API.**

> > También se puede pensar en una API como una especie de acuerdo entre dos partes.
>  

La API no sólo permite el intercambio de información a la carta, sino que estipula cómo debe intercambiarse esa información.

Dado que algunas API proporcionan la interfaz directamente, los términos **"API" e "interfaz"** se utilizan a veces de forma intercambiable.

Para desglosarlo, una API puede constar de dos cosas:

**Las especificaciones técnicas y la documentación:** Esta información explica cómo tendrá que integrar la API para utilizarla eficazmente.

**La interfaz propiamente dicha: **Puedes acceder a ella directamente a través de una palabra clave (en el caso de una API web) o indirectamente desde una interfaz independiente (en el caso de una API REST).

Algunas de las API más populares son las siguientes

**APIs web**, que se utilizan para llegar a los navegadores y dispositivos web o como una aplicación propia de servicios web.

**APIs SOAP**, que son una opción popular en casos de mayor privacidad y seguridad de los datos.

**APIs abiertas** (o APIs públicas) y APIs REST (o RESTful), que son una opción popular por su facilidad de uso y para maximizar el ancho de banda.

**JSON-RPC**, una opción para los casos en los que se necesitan llamadas asíncronas al servidor.

**APIs personalizadas**, para conseguir la máxima agilidad con todas las partes móviles del desarrollo de software.


**🤔 Quieres más contenido!**
Aquí te dejo algunos enlaces donde comparto el contenido:
[Youtube](https://www.youtube.com/channel/UCgrIGp5QAnC0J8LfNJxDRDw?sub_confirmation=1): Todo sobre Angular, Node, JS y mucho más
[Telegram](https://t.me/leifermendez): Canal donde compartimos dudas y complementamos nuestros conocimientos
[Github](https://github.com/leifermendez): Todo el código libre de los proyectos
[Blog](https://codigoencasa.com/): Escribo cosas con más frecuencia cada semana!
[Linkedin:](https://www.linkedin.com/in/leifermendez/) El canal profesional