Kit de desarrollo de software


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 quizás un marco de software . Normalmente son específicos de una combinación de plataforma de hardware y sistema operativo . [1] [2] [3] Para crear aplicaciones con funcionalidades avanzadas como anuncios, [4] notificaciones push, [5] etc; la mayoría de los desarrolladores de software de aplicaciones utilizan kits de desarrollo de software específicos. [6]

Se requieren algunos SDK para desarrollar una aplicación específica de plataforma. Por ejemplo, el desarrollo de una aplicación de Android en la plataforma Java requiere un kit de desarrollo de Java . Para las aplicaciones (aplicaciones) de iOS, se requiere el SDK de iOS . Para la plataforma universal de Windows , se puede utilizar .NET Framework SDK . 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 , [7] Smaato , [8] InMobi , [9]y Facebook . [10]

Un SDK puede tomar la forma de interfaces de programación de aplicaciones (API) [3] en forma de bibliotecas en el dispositivo de funciones reutilizables que se utilizan para interactuar con un lenguaje de programación en particular , o puede ser tan complejo como herramientas específicas de hardware que pueden comunicarse con un sistema embebido particular . [11] Las herramientas comunes incluyen instalaciones de depuración y otras utilidades , que a menudo se presentan en un entorno de desarrollo integrado (IDE). [12] 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 por el material de referencia principal.[13] [14]

Los SDK a menudo incluyen licencias que los hacen inadecuados para crear software destinado a ser desarrollado 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. [15] [16] Sin embargo, los SDK creados bajo la Licencia Pública General Reducida de GNU (LGPL) se pueden utilizar normalmente para desarrollo propietario. [17] En los casos en que la tecnología subyacente sea nueva, los SDK pueden incluir hardware. Por ejemplo, AirTag 's 2021 NFCEl SDK incluía las mitades de pago y de lectura de la pila de hardware necesaria. [18]

La aplicación móvil de Android promedio implementa 15.6 SDK separados, con aplicaciones de juegos que implementan un promedio de 17.5 SDK diferentes. [19] Las categorías de SDK más populares para aplicaciones móviles de Android son análisis y publicidad. [19]

Los SDK pueden no ser seguros (porque se implementan dentro de las aplicaciones, pero ejecutan un 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 hacer que las aplicaciones sean prohibidas en Google Play o App Store . [20] Las nuevas tecnologías permiten a los desarrolladores de aplicaciones controlar y supervisar los SDK de los clientes en tiempo real.