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 framework 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 automáticas, [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 la 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 de iOS (apps) se requiere el SDK de iOS . Para la plataforma universal de Windows , se puede usar 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 la aplicación 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 , a menudo presentadas 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 generalmente es 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) suelen utilizarse para el desarrollo propietario. [17] En los casos en que la tecnología subyacente sea nueva, los SDK pueden incluir hardware. Por ejemplo, NFC 2021 de AirTagSDK incluía tanto la mitad de pago como la de lectura de la pila de hardware necesaria. [18]

La aplicación móvil promedio de Android implementa 15,6 SDK separados, y las aplicaciones de juegos implementan en promedio 17,5 SDK diferentes. [19] Las categorías de SDK más populares para las 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 se prohíban en Google Play o App Store . [20] Las nuevas tecnologías permiten a los desarrolladores de aplicaciones controlar y monitorear los SDK de los clientes en tiempo real.