Un kit de desarrollo de software ( SDK ) es una colección de herramientas de desarrollo de software en un paquete instalable. Facilitan la creación de aplicaciones al tener un compilador, un depurador y en ocasiones un framework de software . Normalmente son específicos de una combinación de plataforma de hardware y sistema operativo. Para crear aplicaciones con funcionalidades avanzadas como anuncios, notificaciones push, etc; la mayoría de los desarrolladores de software de aplicaciones utilizan kits de desarrollo de software específicos.
Se requieren algunos SDK para desarrollar una aplicación específica de una plataforma. Por ejemplo, el desarrollo de una aplicación de Android en la plataforma Java requiere un kit de desarrollo de Java. Para aplicaciones (apps) de iOS se requiere. Para la Plataforma universal de Windows, se puede utilizar el SDK de .NET Framework. También hay SDK que agregan funciones adicionales y se pueden instalar en aplicaciones para proporcionar análisis, datos sobre la actividad de las aplicaciones y opciones de monetización. Algunos creadores destacados de este tipo de SDK incluyen Google, Smaato, InMobi y Facebook.
Un SDK puede tomar la forma de interfaces de programación de aplicaciones (API) [1] en forma de bibliotecas de funciones reutilizables en el dispositivo utilizadas para interactuar con un lenguaje de programación particular , o puede ser tan complejo como herramientas específicas de hardware que pueden comunicarse. con un sistema embebido particular . [2] Las herramientas comunes incluyen funciones de depuración y otras utilidades , a menudo presentadas en un entorno de desarrollo integrado (IDE). [3] Los SDK pueden incluir software de muestra y/o notas técnicas junto con documentación y tutoriales para ayudar a aclarar los puntos planteados en el material de referencia principal. [4] [5]
Los SDK a menudo incluyen licencias que los hacen inadecuados para crear software destinado a desarrollarse bajo una licencia incompatible. Por ejemplo, un SDK propietario es generalmente incompatible con el desarrollo de software libre , mientras que un SDK con licencia GPL podría ser incompatible con el desarrollo de software propietario, por razones legales. [6] [7] Sin embargo, los SDK creados bajo la Licencia pública general reducida (LGPL) de GNU suelen utilizarse para desarrollo propietario. [8] En los casos en que la tecnología subyacente sea nueva, los SDK pueden incluir hardware. Por ejemplo, el SDK NFC 2021 de AirTag incluía la mitad de pago y la de lectura de la pila de hardware necesaria. [9]
La aplicación móvil Android promedio implementa 15,6 SDK separados, y las aplicaciones de juegos implementan en promedio 17,5 SDK diferentes. [10] Las categorías de SDK más populares para aplicaciones móviles de Android son análisis y publicidad. [10]
Los SDK pueden ser inseguros (porque se implementan dentro de aplicaciones pero ejecutan código separado). Los SDK maliciosos (con intenciones honestas o no) pueden violar la privacidad de los datos de los usuarios , dañar el rendimiento de las aplicaciones o incluso provocar que se prohíban aplicaciones en Google Play o App Store . [11] Las nuevas tecnologías permiten a los desarrolladores de aplicaciones controlar y monitorear los SDK de los clientes en tiempo real.
Los proveedores de SDK para sistemas o subsistemas específicos a veces sustituyen el término software por un término más específico . Por ejemplo, tanto Microsoft [12] como Citrix [13] proporcionan un kit de desarrollo de controladores (DDK) para desarrollar controladores de dispositivos .
Ejemplos de kits de desarrollo de software para diversas plataformas incluyen: