Plugin
Un complemento es una aplicación informática que se relaciona con otra para aportarle una función nueva y generalmente muy específica. Esta aplicación adicional es ejecutada por la aplicación principal e interactúan por medio de la API. También se conoce como plug-in (del inglés «[un] enchufable o inserción»), add-on («añadido»), conector o extensión.
Los complementos permiten:
- Que los desarrolladores externos colaboren con la aplicación principal extendiendo sus funciones.
- Reducir el tamaño de la aplicación.
- Separar el código fuente de la aplicación a causa de la incompatibilidad de las licencias de software.
Algunos tipos de aplicaciones que suelen incluir complementos son:
- Navegadores web: es frecuente requerir ciertos complementos que amplían las funciones de las páginas web para ver contenidos interactivos, videos y cosas similares. Un ejemplo conocido es Adobe Flash Player, un complemento que carga animaciones multimedia interactivas y se usa, por ejemplo, para ver videos.
- Reproductores de audio: Algunos permiten añadir complementos para reproducir formatos que no son soportados originalmente, producir efectos de sonido o video, mostrar animaciones o visualizaciones que se mueven de acuerdo a la música que se está escuchando, entre otras opciones. Windows Media Player y Winamp soportan muchas de estas opciones.
- Sistemas de gestión de contenidos: permiten cambiar la apariencia, añadir botones u otro tipo de contenido a las páginas web que generan. Los complementos de WordPress son bien conocidos.
Funcionamiento
La aplicación principal o host proporciona servicios que el complemento puede utilizar, incluyendo un método para que los complementos se registren a si mismos y un protocolo para el intercambio de datos. Los complementos dependen de los servicios prestados por la aplicación de acogida y no suelen funcionar por sí mismos. Por el contrario, la aplicación principal funciona independientemente de ellos, lo que permite a los usuarios finales añadir y actualizar los complementos de forma dinámica sin necesidad de hacer cambios a la aplicación principal.