lunes, 21 de mayo de 2012

Introducción a la creación de interfaces gráficas con Qt - parte 1



Hola a todos los lectores de este blog. Antes que nada, debo decirles que aquí no se hablará de principios de diseño o funcionalidad para crear interfaces gráficas, ni mucho menos (Al menos no en esta “breve” introducción). Sino más bien, hacerle entender al que es nuevo en esto de interfaces gráficas, que, caminos hay muchos, y elegir uno de ellos es una decisión muy muy importante para un programador de hoy día; ya que hay muchos SOs y dispositivos en el mercado. Así que si no eres nuevo en esto, puedes abandonar de inmediato esta lectura xD.



Antes de hablar de Qt, y todo lo que es eso, es mejor tener en cuenta varias cosas: la primera, que un programa informático, para funcionar, no necesita de una interfaz de usuario o GUI (Graphic User Interface), a menos que ese sea su acometido, o un elemento vital para su funcionamiento. Por ejemplo, el software de un cajero, necesita obligatoriamente una GUI porque es esa su razón de ser: que el usuario común y corriente con conocimientos casi nulos de computación o computadores le dé órdenes al cajero para realizar alguna tarea. Pero los drivers o controladores de tu pen drive Kingston no necesitan una interfaz para poder funcionar. Así mismo, no todas las interfaces graficas son iguales, hay interfaces que requieren más diseño y una funcionalidad muy adaptada para su acometido. O sea, puede que se necesite un software cuya interfaz debe tener muchos efectos gráficos y ser muy llamativa, pero que no tiene muchos elementos gráficos en ella ni muy funcionales tampoco, tal vez unos cuantos botones y algo más. Como puede haber el requerimiento, de una interfaz sencilla, sin efectos pero con muchos elementos gráficos, muchas ventanas, muchos menues, etc. Y para cada una de ellas, podemos elegir una herramienta específica para realizarla.

Hacer una GUI para un programa no es algo difícil, pero tampoco algo fácil. Como todo, en la informática, realizar una GUI tiene las mil y una maneras distintas de lograrlo. Debemos empezar por preguntarnos: ¿qué lenguaje usar?, luego de eso, ¿para cual plataforma hacerlo? Y por último, ¿qué herramientas usar para realizarlo? Por ejemplo, podemos usar un SDK (Software Development Kit) que nos permita lograr una interfaz limpia y pulcra y además bastante usable y funcional, y además, que se ejecute en todas las plataformas o en la mayoría de ellas (Algo que casi todos hacen). O...podemos tirárnosla de machos y programar a patica en C++ o en el lenguaje que usemos, con una sola librería de gráficos los distintos elementos de la interfaz que queremos, si es posible dibujarlos a mano, llamando función por función (Algo que ya nadie hace).

No quiero extenderme tanto en esta introducción, así que para acortar te comentare que existen muchas librerías gráficas para hacer gráficos en el computador. Windows tiene su API, con la cual, quien sabia dominarla o programar con ella, podía desarrollar una interfaz para Windows (Únicamente). Y así mismo, pasaba con Linux. Este problema, de decidir para cual plataforma programar (porque representaba una inversión de tiempo y esfuerzo, exclusivamente para una única plataforma) siempre ha estado en el tapete. Y aún sigue estándolo, pero ya no con tanta fuerza como antes, gracias a lenguajes como Java o Python y a herramientas como Qt que hacen que la programación multi-plataforma no sea tan dolorosa para nosotros los programadores, a parte que nos ayuda a llegarle a más personas y pisar más terrenos con lo que desarrollamos, en menos tiempo y con menos esfuerzo.

A todas estas, ¿Qué es un SDK? Según Wikipedia: “Un kit de desarrollo de software o SDK (siglas en inglés de software development kit) es generalmente un conjunto de herramientas de desarrollo de software que le permite al programador crear aplicaciones para un sistema concreto, por ejemplo ciertos paquetes de software, frameworks, plataformas de hardware, computadoras, videoconsolas, sistemas operativos, etc. Es algo tan sencillo como una interfaz de programación de aplicaciones o API (del inglés application programing interface) creada para permitir el uso de cierto lenguaje de programación, o puede, también, incluir hardware sofisticado para comunicarse con un determinado sistema embebido. Las herramientas más comunes incluyen soporte para la detección de errores de programación como un entorno de desarrollo integrado o IDE (del inglés Integrated Development Environment) y otras utilidades. Los SDK frecuentemente incluyen, también, códigos de ejemplo y notas técnicas de soporte u otra documentación de soporte para ayudar a clarificar ciertos puntos del material de referencia primario.”

Así, por ejemplo, Android tiene su propio SDK, que quienes quieran crear aplicaciones para dicho sistema operativo, se les facilite la tarea usando un IDE que está altamente compenetrado con la API de ese sistema operativo (Eclipse) y el diseño de la GUI del software que vayamos a crear lo hagamos con una vista de diseño WYSIWYG.

0 comentarios:

Publicar un comentario