Este artículo necesita citas adicionales para su verificación . ( mayo de 2022 ) |
Una interfaz gráfica de usuario , o GUI ( / ˈɡuːi / [1] [ 2 ] GOO -ee ), es una forma de interfaz de usuario que permite a los usuarios interactuar con dispositivos electrónicos a través de íconos gráficos e indicadores visuales como notación secundaria . En muchas aplicaciones, se utilizan GUI en lugar de UI basadas en texto , que se basan en etiquetas de comandos escritos o navegación de texto. Las GUI se introdujeron como reacción a la pronunciada curva de aprendizaje percibida de las interfaces de línea de comandos (CLI), [3] [4] [5] que requieren que los comandos se escriban en un teclado de computadora .
Las acciones en una GUI se realizan generalmente a través de la manipulación directa de los elementos gráficos. [6] [7] [8] Más allá de las computadoras, las GUI se utilizan en muchos dispositivos móviles portátiles como reproductores de MP3 , reproductores multimedia portátiles, dispositivos de juegos, teléfonos inteligentes y controles domésticos, de oficina e industriales más pequeños . El término GUI tiende a no aplicarse a otros tipos de interfaces de resolución de pantalla más baja , como los videojuegos (donde se prefieren las pantallas de visualización frontal ( HUD ) [9] ), o no incluye pantallas planas como las pantallas volumétricas [10] porque el término está restringido al alcance de las pantallas de visualización 2D capaces de describir información genérica, en la tradición de la investigación en ciencias de la computación en el Centro de Investigación Xerox Palo Alto .
El diseño de la composición visual y el comportamiento temporal de una interfaz gráfica de usuario es una parte importante de la programación de aplicaciones de software en el área de la interacción entre personas y computadoras . Su objetivo es mejorar la eficiencia y la facilidad de uso del diseño lógico subyacente de un programa almacenado , una disciplina de diseño denominada usabilidad . Se utilizan métodos de diseño centrado en el usuario para garantizar que el lenguaje visual introducido en el diseño se adapte bien a las tareas.
Las características de la interfaz gráfica visible de una aplicación a veces se denominan cromo o GUI . [11] [12] [13] Normalmente, los usuarios interactúan con la información manipulando widgets visuales que permiten interacciones apropiadas para el tipo de datos que contienen. Los widgets de una interfaz bien diseñada se seleccionan para respaldar las acciones necesarias para lograr los objetivos de los usuarios. Un modelo-vista-controlador permite estructuras flexibles en las que la interfaz es independiente y está vinculada indirectamente a las funciones de la aplicación, por lo que la GUI se puede personalizar fácilmente. Esto permite a los usuarios seleccionar o diseñar una apariencia o tema diferente a voluntad y facilita el trabajo del diseñador para cambiar la interfaz a medida que evolucionan las necesidades del usuario. Un buen diseño de GUI se relaciona más con los usuarios y menos con la arquitectura del sistema. Los widgets grandes, como las ventanas , generalmente proporcionan un marco o contenedor para el contenido principal de la presentación, como una página web, un mensaje de correo electrónico o un dibujo. Los más pequeños generalmente actúan como una herramienta de entrada del usuario.
Una GUI puede diseñarse para los requisitos de un mercado vertical como GUI específicas de la aplicación. Algunos ejemplos incluyen cajeros automáticos (ATM), pantallas táctiles de puntos de venta (POS) en restaurantes, [14] cajas de autoservicio utilizadas en una tienda minorista, facturación y emisión de billetes de avión, quioscos de información en un espacio público, como una estación de tren o un museo, y monitores o pantallas de control en una aplicación industrial integrada que emplean un sistema operativo en tiempo real (RTOS).
Los teléfonos móviles y los sistemas de juegos portátiles también emplean interfaces gráficas de usuario de pantalla táctil específicas para cada aplicación. Los automóviles más nuevos utilizan interfaces gráficas de usuario en sus sistemas de navegación y centros multimedia, o combinaciones de centros multimedia de navegación.
Una GUI utiliza una combinación de tecnologías y dispositivos para proporcionar una plataforma con la que los usuarios pueden interactuar para las tareas de recopilación y producción de información.
Una serie de elementos que conforman un lenguaje visual han evolucionado para representar la información almacenada en los ordenadores. Esto facilita el trabajo y el uso de software informático por parte de personas con pocos conocimientos informáticos. La combinación más común de dichos elementos en las GUI es el paradigma ventanas, iconos, campos de texto, lienzos, menús, puntero ( WIMP ), especialmente en los ordenadores personales . [15]
El estilo de interacción WIMP utiliza un dispositivo de entrada virtual para representar la posición de la interfaz de un dispositivo señalador , generalmente un ratón , y presenta la información organizada en ventanas y representada con iconos . Los comandos disponibles se compilan juntos en menús y las acciones se realizan haciendo gestos con el dispositivo señalador. Un gestor de ventanas facilita las interacciones entre ventanas, aplicaciones y el sistema de ventanas . El sistema de ventanas maneja dispositivos de hardware como dispositivos señaladores, hardware gráfico y posicionamiento del puntero.
En los ordenadores personales , todos estos elementos se modelan a través de una metáfora de escritorio para producir una simulación denominada entorno de escritorio , en el que la pantalla representa un escritorio, en el que se pueden colocar documentos y carpetas de documentos. Los gestores de ventanas y otros programas se combinan para simular el entorno de escritorio con distintos grados de realismo.
Las entradas pueden aparecer en una lista para dejar espacio para texto y detalles, o en una cuadrícula para que sean más compactas y los íconos sean más grandes con poco espacio debajo para el texto. Existen variaciones intermedias, como una lista con múltiples columnas de elementos y una cuadrícula de elementos con filas de texto que se extienden lateralmente desde el ícono. [16]
Los diseños de varias filas y varias columnas que se encuentran comúnmente en la web son "shelf" y "waterfall". El primero se encuentra en los motores de búsqueda de imágenes , donde las imágenes aparecen con una altura fija pero una longitud variable, y generalmente se implementa con la propiedad CSS y el parámetro display: inline-block;
. Un diseño de cascada que se encuentra en Imgur y TweetDeck con un ancho fijo pero una altura variable por elemento generalmente se implementa especificando column-width:
.
Los dispositivos móviles con aplicaciones más pequeñas, como los asistentes digitales personales (PDA) y los teléfonos inteligentes, suelen utilizar los elementos WIMP con diferentes metáforas unificadoras, debido a las limitaciones de espacio y los dispositivos de entrada disponibles. Las aplicaciones para las que WIMP no es adecuado pueden utilizar técnicas de interacción más nuevas , denominadas colectivamente IU post-WIMP . [17]
A partir de 2011, algunos sistemas operativos basados en pantallas táctiles, como iOS ( iPhone ) y Android de Apple , utilizan la clase de GUI denominada post-WIMP. Estas admiten estilos de interacción utilizando más de un dedo en contacto con una pantalla, lo que permite acciones como pellizcar y rotar, que no son compatibles con un solo puntero y mouse. [18]
Los dispositivos de interfaz humana , para la interacción eficiente con una GUI, incluyen un teclado de computadora , especialmente usado junto con atajos de teclado , dispositivos señaladores para el control del cursor (o más bien puntero ): mouse , puntero , panel táctil , trackball , joystick , teclados virtuales y pantallas de visualización frontal (dispositivos de información translúcidos a la altura de los ojos).
También existen acciones que realizan los programas y que afectan a la interfaz gráfica de usuario. Por ejemplo, existen componentes como inotify o D-Bus para facilitar la comunicación entre programas informáticos.
Ivan Sutherland desarrolló Sketchpad en 1963, considerado ampliamente como el primer programa gráfico de diseño asistido por ordenador . Utilizaba un lápiz óptico para crear y manipular objetos en dibujos de ingeniería en tiempo real con gráficos coordinados. A finales de los años 1960, los investigadores del Stanford Research Institute , dirigidos por Douglas Engelbart , desarrollaron el On-Line System (NLS), que utilizaba hipervínculos basados en texto manipulados con un dispositivo entonces nuevo: el ratón . (Una demostración de 1968 del NLS se conoció como " La madre de todas las demostraciones "). En los años 1970, las ideas de Engelbart se refinaron aún más y se extendieron a los gráficos por los investigadores de Xerox PARC y, específicamente, Alan Kay , que fue más allá de los hipervínculos basados en texto y utilizó una GUI como interfaz principal para el lenguaje de programación Smalltalk , que se ejecutaba en la computadora Xerox Alto , lanzada en 1973. La mayoría de las GUI de propósito general modernas se derivan de este sistema.
La interfaz gráfica de usuario de Xerox PARC constaba de elementos gráficos como ventanas , menús , botones de opción y casillas de verificación . El concepto de iconos fue introducido posteriormente por David Canfield Smith , que había escrito una tesis sobre el tema bajo la guía de Kay. [19] [20] [21] La interfaz gráfica de usuario de PARC emplea un dispositivo señalador junto con un teclado. Estos aspectos se pueden enfatizar utilizando el término alternativo y el acrónimo para ventanas, iconos, menús, dispositivo señalador ( WIMP ). Este esfuerzo culminó en 1973 en el Xerox Alto , la primera computadora con una interfaz gráfica de usuario, aunque el sistema nunca llegó a la producción comercial.
El primer ordenador disponible comercialmente con una GUI fue la estación de trabajo PERQ de 1979 , fabricada por Three Rivers Computer Corporation. Su diseño estuvo fuertemente influenciado por el trabajo en Xerox PARC. En 1981, Xerox finalmente comercializó las ideas del Alto en forma de un sistema nuevo y mejorado, el Xerox 8010 Information System, más comúnmente conocido como Xerox Star . [22] [23] Estos primeros sistemas estimularon muchos otros esfuerzos de GUI, incluidas las máquinas Lisp de Symbolics y otros fabricantes, el Apple Lisa (que presentó el concepto de barra de menú y controles de ventana ) en 1983, el Apple Macintosh 128K en 1984 y el Atari ST con GEM de Digital Research y Commodore Amiga en 1985. Visi On fue lanzado en 1983 para los ordenadores compatibles con IBM PC , pero nunca fue popular debido a sus altas demandas de hardware. [24] Sin embargo, fue una influencia crucial en el desarrollo contemporáneo de Microsoft Windows . [25]
Apple, Digital Research, IBM y Microsoft utilizaron muchas de las ideas de Xerox para desarrollar productos, y las especificaciones Common User Access de IBM formaron la base de las GUI utilizadas en Microsoft Windows, IBM OS/2 Presentation Manager y el kit de herramientas y administrador de ventanas Unix Motif . Estas ideas evolucionaron para crear la interfaz que se encuentra en las versiones actuales de Microsoft Windows y en varios entornos de escritorio para sistemas operativos tipo Unix , como macOS y Linux . Por lo tanto, la mayoría de las GUI actuales tienen en gran medida modismos comunes.
Las GUI fueron un tema candente a principios de los años 1980. Apple Lisa fue lanzada en 1983 y existían varios sistemas de ventanas para sistemas operativos DOS (incluidos PC GEM y PC/GEOS ). Las aplicaciones individuales para muchas plataformas presentaban sus propias variantes de GUI. [26] A pesar de las ventajas de las GUI, muchos revisores cuestionaron el valor de todo el concepto, [27] citando límites de hardware y problemas para encontrar software compatible.
En 1984, Apple lanzó un anuncio de televisión que presentaba el Apple Macintosh durante la transmisión del Super Bowl XVIII por CBS , [28] con alusiones a la famosa novela de George Orwell, Mil novecientos ochenta y cuatro . El objetivo del anuncio era hacer que la gente pensara en las computadoras, identificando la interfaz fácil de usar como una computadora personal que se alejaba de los sistemas anteriores orientados a los negocios, [29] y se convertía en una representación distintiva de los productos Apple. [30]
En 1985, Commodore lanzó el Amiga 1000 , junto con Workbench y Kickstart 1.0 (que contenía Intuition ). Esta interfaz se ejecutaba como una tarea independiente, lo que significa que respondía muy bien y, a diferencia de otras GUI de la época, no se bloqueaba cuando un programa estaba ocupado. Además, fue la primera GUI en introducir algo parecido a los escritorios virtuales .
Windows 95 , acompañado de una extensa campaña de marketing, [31] fue un gran éxito en el mercado en su lanzamiento y pronto se convirtió en el sistema operativo de escritorio más popular. [32]
En 2007, con el iPhone [33] y más tarde en 2010 con la introducción del iPad , [34] Apple popularizó el estilo de interacción post-WIMP para pantallas multitáctiles , y esos dispositivos fueron considerados hitos en el desarrollo de dispositivos móviles . [35] [36]
Las GUI familiares para la mayoría de las personas a mediados y fines de la década de 2010 son Microsoft Windows , macOS y las interfaces del sistema X Window para computadoras de escritorio y portátiles, y Android , iOS de Apple , Symbian , BlackBerry OS , Windows Phone / Windows 10 Mobile , Tizen , WebOS y Firefox OS para dispositivos portátiles ( teléfonos inteligentes ). [37] [38]
Dado que los comandos disponibles en las interfaces de línea de comandos pueden ser muchos, se pueden realizar operaciones complejas utilizando una secuencia corta de palabras y símbolos. Se pueden utilizar funciones personalizadas para facilitar el acceso a acciones frecuentes. Las interfaces de línea de comandos son más ligeras , ya que solo recuerdan la información necesaria para una tarea; por ejemplo, no hay miniaturas de vista previa ni representación gráfica de páginas web. Esto permite una mayor eficiencia y productividad una vez que se aprenden muchos comandos. [3] Pero alcanzar este nivel lleva algo de tiempo porque las palabras de comando pueden no ser fácilmente descubribles o mnemotécnicas . Además, el uso de la línea de comandos puede volverse lento y propenso a errores cuando los usuarios deben ingresar comandos largos que comprenden muchos parámetros o varios nombres de archivo diferentes a la vez. Sin embargo, las interfaces de ventanas, íconos, menús, puntero ( WIMP ) presentan a los usuarios muchos widgets que representan y pueden activar algunos de los comandos disponibles del sistema.
Las GUI pueden volverse bastante complicadas cuando los cuadros de diálogo están enterrados en lo profundo de un sistema o se trasladan a diferentes lugares durante los rediseños. Además, los íconos y los cuadros de diálogo suelen ser más difíciles de programar para los usuarios.
Los WIMP utilizan ampliamente los modos , ya que el significado de todas las teclas y clics en posiciones específicas de la pantalla se redefinen todo el tiempo. Las interfaces de línea de comandos utilizan los modos solo en formas limitadas, como para el directorio actual y las variables de entorno .
La mayoría de los sistemas operativos modernos proporcionan una GUI y algún nivel de CLI, aunque las GUI suelen recibir más atención.
Los envoltorios de GUI encuentran una manera de evitar las versiones de interfaz de línea de comandos (CLI) de (típicamente) aplicaciones de software tipo Linux y Unix y sus IU basadas en texto o etiquetas de comandos escritos. Mientras que las aplicaciones de línea de comandos o basadas en texto permiten a los usuarios ejecutar un programa de forma no interactiva, los envoltorios de GUI sobre ellos evitan la pronunciada curva de aprendizaje de la línea de comandos, que requiere que los comandos se escriban en el teclado . Al iniciar un envoltorio de GUI, los usuarios pueden interactuar intuitivamente con, iniciar, detener y cambiar sus parámetros de trabajo, a través de íconos gráficos e indicadores visuales de un entorno de escritorio , por ejemplo. Las aplicaciones también pueden proporcionar ambas interfaces, y cuando lo hacen, la GUI suele ser un envoltorio WIMP alrededor de la versión de línea de comandos. Esto es especialmente común con aplicaciones diseñadas para sistemas operativos tipo Unix . Este último solía implementarse primero porque permitía a los desarrolladores centrarse exclusivamente en la funcionalidad de su producto sin preocuparse por los detalles de la interfaz, como el diseño de íconos y la colocación de botones. Diseñar programas de esta manera también permite a los usuarios ejecutar el programa en un script de shell .
Muchos entornos y juegos utilizan los métodos de gráficos 3D para proyectar objetos GUI 3D en la pantalla. El uso de gráficos 3D se ha vuelto cada vez más común en los sistemas operativos principales (por ejemplo, Windows Aero y Aqua (MacOS)) para crear interfaces atractivas, denominadas eye candy (que incluye, por ejemplo, el uso de sombras debajo de las ventanas y el cursor ), o para fines funcionales solo posibles utilizando tres dimensiones. Por ejemplo, el cambio de usuario se representa rotando un cubo con caras que representan el espacio de trabajo de cada usuario, y la gestión de ventanas se representa a través de un mecanismo de volteo estilo Rolodex en Windows Vista (consulte Windows Flip 3D ). En ambos casos, el sistema operativo transforma las ventanas sobre la marcha mientras continúa actualizando el contenido de esas ventanas.
La GUI suele estar basada en WIMP, aunque ocasionalmente surgen otras metáforas, como las utilizadas en Microsoft Bob , 3dwm, File System Navigator, File System Visualizer , 3D Mailbox, [39] [40] y GopherVR . Zooming (ZUI) es una tecnología relacionada que promete ofrecer los beneficios de representación de los entornos 3D sin sus inconvenientes de usabilidad de problemas de orientación y objetos ocultos. En 2006, Hillcrest Labs presentó el primer ZUI para televisión. [41] Otras innovaciones incluyen los menús de la PlayStation 2 , los menús de la Xbox , Project Looking Glass de Sun , Metisse , que era similar a Project Looking Glass, [42] BumpTop , donde los usuarios pueden manipular documentos y ventanas con movimiento y física realistas como si fueran documentos físicos, Croquet OS , que está diseñado para la colaboración, [43] y administradores de ventanas de composición como Enlightenment y Compiz . La realidad aumentada y la realidad virtual también utilizan elementos GUI 3D. [44]
Las GUI 3D han aparecido en la literatura y películas de ciencia ficción , incluso antes de que ciertas tecnologías fueran factibles o de uso común. [45]
El producto Visi On no estaba pensado para el usuario doméstico. Fue diseñado y cotizado para estaciones de trabajo corporativas de alta gama. El hardware que requería era bastante para 1983. Requería un mínimo de 512k de RAM y un disco duro (5 megas de espacio).
Los esfuerzos en Xerox PARC bajo el liderazgo de Alan Kay que impulsaron el desarrollo de [...] potentes interfaces de usuario basadas en pantallas de mapa de bits fueron clave. En cierto modo, todo lo que estamos haciendo aquí es extender este modelo a 3D y agregar un nuevo modelo robusto de colaboración de objetos.