Mostrando entradas con la etiqueta multiplataforma. Mostrar todas las entradas
Mostrando entradas con la etiqueta multiplataforma. Mostrar todas las entradas

jueves, 13 de junio de 2013

Liberado Qt 5.1 Beta.

clip_image001

Por estos días muchas empresas y desarrolladores de software están nuevamente motivados a desarrollar en C++, por la reciente noticia de la liberación de la versión Beta de Qt 5.1. Con la versión Beta, tendremos disponibles los instaladores binarios para Qt 5.1, por lo que es más fácil usar el Framework Qt. Ahora veamos las grandes mejoras que aporta esta versión con explicaciones detalladas que dieron sus desarrolladores [1].

Funcionalidad clave

El principal motor de Qt 5.1 ha sido el aumento de la madurez de las nuevas características introducidas con Qt 5.0. Hemos mejorado la funcionalidad y el rendimiento sobre la base de la información recibida de los casos de uso del mundo real de Qt 5.0 y aplicaciones de portabilidad de Qt 4.x Estamos en condiciones de satisfacer sus necesidades con Qt 5 debido a la retroalimentación y contribuciones de nuestra creciente ecosistema de alrededor de 500.000 desarrolladores en más de 70 industrias que utilizan Qt en numerosas plataformas y configuraciones.

Las nuevas características clave de Qt 5.1 Beta incluyen:

  • Qt Quick Controls módulo de proporcionar un conjunto de componentes de interfaz de usuario reutilizables especialmente para aplicaciones de escritorio creados con Qt Quick
  • Qt Quick Layouts módulo que permite diseños rápidos de forma más intuitiva, una forma fácil de gestionar interfaces de usuario escalables al asegurar que los artículos están dispuestos constantemente, y que la interfaz de usuario como un conjunto sigue siendo utilizable a través de diferentes tamaños de pantalla.
  • Qt Serial Port módulo de puerto serie que proporciona una interfaz multiplataforma para utilizar el hardware y los puertos serie virtuales en aplicaciones Qt
  • Posibilidad de usar Qt Quick y Widgets juntos en la misma ventana de la aplicación
  • Qt Creator 2.7.1 incluido en el paquete, proporcionando, por ejemplo, Qt Designer que permite una rápida creación de prototipos, así como las mejoras en la edición de código para C ++ 11.
  • El soporte a la compilación estática de QT hace posible la solución frente a los casos de uso que no pueden utilizar el enlace dinámico.
  • Introduce Qt Sensors como un módulo con apoyo oficial.

Instaladores binarios

Para la mayoría de los usuarios lo mejor de Qt 5.1 Beta comparado con Qt 5.1 Alpha es que incorpora instaladores binarios que proporcionan una forma conveniente de instalar todo lo que necesita para comenzar a desarrollar con Qt sin necesidad de que usted compile Qt. Con Qt 5.1 estamos introduciendo algunas nuevas configuraciones como VS2012 64 bits con OpenGL, que ya está disponible con la versión beta. Poco después de la Beta estamos actualizando MinGW a la versión 4.8 y el objetivo es lograr también VS2012 32 bits con la configuración ANGLE.

Qt 5.1 Beta viene como un instalador fuera de línea, pero también proporcionará instaladores en línea antes del lanzamiento de Qt 5.1.0 final. El instalador offline contiene todo lo necesario para empezar con Qt - herramientas, documentación, ejemplos y bibliotecas Qt pre-compiladas. Los paquetes fuente están disponibles para aquellos que desean construir Qt (o tienen la necesidad de utilizar una configuración que no está disponible como un binario pre-construidos). Además de instaladores binarios para sistemas de escritorio, Qt 5.1 Beta viene con los binarios pre-compilados para Android que pueden ser empaquetados con su aplicación.

Nuevas plataformas

Qt 5.1 Beta ofrece una vista previa a la tecnología del soporte a los dispositivos Android y iOS. Además en la versión definitiva de Qt 5.1.0 está previsto reintroducir el soporte para Windows Embedded Compact 7. Hemos añadido todas estas nuevas plataformas en el sistema de CI de modo que cada cambio que va en Qt se verifica para trabajar en estos, así como las otras plataformas y configuraciones ya en el CI. Por el momento, el CI para Android y iOS sólo las pruebas para la construcción, pero estamos poco a poco añadiendo también las pruebas automatizadas que se ejecutan en estas nuevas plataformas, para disminuir la posibilidad de regresiones.

Hay un montón de rumores en torno a los nuevos Ports (Soporte) para dispositivos móviles y muchos están interesados ​​en saber lo que es posible hacer con el Qt 5.1 Beta. En general, se puede afirmar que se pueden crear aplicaciones impresionantes que se ejecutan sin problemas en las dos nuevas plataformas, pero con limitaciones en la funcionalidad soportada.

Con Android las siguientes funcionalidades trabajan bien en el Qt 5.1 Beta:

  • Widgets, Graphics View, Qt Quick 1 y Qt Quick 2.
  • OpenGL, redes y otras funcionalidades básicas de Qt
  • Algunas partes de Qt Multimedia, por ejemplo QML media player
  • Un conjunto de sensores comúnmente utilizados con Qt Sensors.
  • Desplegar tus aplicaciones a un dispositivo usando el IDE Qt Creator.
  • Depurar la aplicación usando el IDE Qt Creator
  • Qt 5.1 Beta viene con los binarios pre-construido para Android que puede ser incluido con su aplicación.

Con iOS el principal problema es que Qt Quick 2 no está disponible, ya que necesita un nuevo motor QML, pero las siguientes funcionalidades funcionan bien en el Qt 5.1 Beta:

  • Widgets, Graphics View y Qt Quick 1.
  • OpenGL, redes y otras funcionalidades básicas de Qt
  • Un conjunto de sensores comúnmente utilizados con Qt Sensors.
  • Despliegue de la aplicación a un dispositivo desde Xcode / iTunes.

Próximos pasos

Con el lanzamiento de Qt 5.1 Beta estamos un paso más cerca de la versión final 5.1.0 Qt, que debemos tener antes de verano. Con base en la retroalimentación que recibamos de la Beta, habrá una versión Release Candidate creada en unas pocas semanas. Recuerden que la versión beta de Qt 5.1 se puede descargar desde aquí.

Envíenos sus comentarios.

{ Leer Más }


miércoles, 22 de mayo de 2013

Inicio rápido con el Framework Qt.

clip_image001

Hace unos días publicamos un artículo, comentando las mejoras fundamentales que hemos experimentado con el lanzamiento de la versión 5.0 del Framework Qt. El presente tiene el objetivo de continuar profundizando en el estudio de Qt, que como ya explicamos, es un framework para el desarrollo de aplicaciones multiplataforma. Una de sus funciones más conocidas es la de la creación de interfaces de usuario, sin embargo no se limita a esto, ya que también provee clases para facilitar otras tareas de programación como el manejo de sockets, soporte para programación multihilo, comunicación con bases de datos, manejo de cadenas de caracteres, entre otras.

Qt utiliza C++ de manera nativa, pero ofrece soporte para otros lenguajes como Python mediante PyQt, Java mediante QtJambi, o C# mediante Qyoto.

Varias aplicaciones conforman la suite para el desarrollo con Qt, entre ellas están:

  • Qt Assistant: Herramienta para visualizar la documentación oficial de Qt.
  • Qt Designer: Herramienta WYSIWYG para crear interfaces de usuario.
  • Qt Linguist: Herramienta para la traducción de aplicaciones.
  • Qt Creator: IDE para el lenguaje C++, pero especialmente diseñado para Qt, integra las primeras dos herramientas mencionadas.

Instalación de Qt

A continuación revisamos algunas de las formas que existen para instalar y configurar el entorno de desarrollo de Qt:

  • Instalar Qt utilizando un asistente de instalación
  • Instalar Qt mediante la compilación del código fuente

A continuación, describimos cada una de ellas.

Instalar Qt utilizando un asistente de instalación

Ventajas: Este método es sencillo de realizar, permite mantenerse con la versión más reciente de Qt.

Desventajas: Puede generar un poco de confusión debido a que, dependiendo de los permisos con los que realicemos la instalación, las herramientas de Qt pueden o no ser agregadas al path por el instalador.

Instrucciones: Descargar la versión que deseemos instalar, desde la página oficial de descargas de Qt: http://qt-project.org/downloads

En dónde el nombre del instalador suele tener la forma: qt-[plataforma]- [versión-licencia] -[versión]- [arquitectura].[extensión] Un ejemplo de ello es la versión 5.0.2 opensource de 32 bits para linux que lleva por nombre: qt-linux-opensource-5.0.2-x86-offline.run.

Después ejecutamos el instalador y seguimos las instrucciones que nos muestra e indicamos la información que nos pide (path de instalación, aceptar el acuerdo de licencia).

Una vez terminada la instalación podemos ejecutar el entorno de desarrollo integrado Qt Creator y comenzar a crear aplicaciones o revisar los impresionantes ejemplos.

Si queremos utilizar las herramientas desde la terminal es necesario ejecutarlas indicando el path en el que están instaladas, o si lo preferimos agregar al path dicha ruta para sólo indicar el nombre del ejecutable. Si existe más de una versión en el path del sistema suele tomar en cuenta la que aparece primero.

Instalar Qt mediante la compilación del código fuente

Ventajas: A pesar de ser el método más complicado, se simplifica bastante gracias al script de configuración y compilación que se incluye, al cual sólo debemos indicarle con que parámetros deseamos incluir o excluir en la construcción de nuestro entorno de desarrollo de Qt. Suele ser la forma ideal si requerimos alguna característica adicional a las predeterminadas.

Desventajas: Aparte de ser la forma más complicada, la compilación de Qt toma bastante tiempo, dependiendo del hardware de la máquina puede llegar a unas 10 horas o más.

Algunas veces los scripts de instalación presentan algún problema que puede complicar todo ya que no se puede construir mediante los parámetros definidos en el asistente y habrá que buscar que es lo que falla y cómo solucionarlo.

Instrucciones: Descarga el código fuente desde la página oficial de descargas de Qt: http://qt-project.org/downloads por ejemplo:

Para Windows: http://download.qt-project.org/official_releases/qt/5.0/5.0.2/single/qt-everywhere-opensource-src-5.0.2.zip

Para Linux/Mac: http://download.qt-project.org/official_releases/qt/5.0/5.0.2/single/qt-everywhere-opensource-src-5.0.2.tar.gz

Una vez descargado el archivo, lo descomprimimos, buscamos el script de configuración, de nombre configure, lo ejecutamos y seguimos las instrucciones. Luego esperamos (un largo tiempo) a que termine la instalación.

Podemos agregar una versión compilada al Qt Creator y al path del sistema con el fin de utilizarla de manera más cómoda.

Nuestro Primer Programa en Qt: "Hola Mundo"

A continuación vamos a crear y explicar a detalle la clásica primera aplicación en programación, esta vez con Qt.

El código de un Hola Mundo en Qt es el siguiente:

#include  <QApplication>;
#include <QLabel>;

int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QLabel *label = new QLabel ("Hola Mundo!");

label->show();

return app.exec();
}

Revisaremos el código línea por línea:

#include <QApplication>

#include <QLabel>

En las primeras dos líneas incluimos los archivos de cabecera que utilizaremos para el ejemplo, QApplication es una clase que representa una aplicación gráfica de Qt, es la encargada de administrar el flujo de ejecución y la configuración principal de la aplicación. QLabel es una clase que representa a un control de interfaz de usuario etiqueta, el cual es generalmente utilizado para mostrar texto no editable en pantalla.

int main(int argc, char *argv[])

Declaramos nuestra función main en la cual comenzará la ejecución de nuestro programa, es necesario especificar los argumentos de línea de comandos argc (un entero que contiene el número de argumentos) y argv (un arreglo/matriz que contiene el valor de cada uno de los argumentos) ya que al crear un objeto de la clase QApplication es necesario especificarlos.

QApplication app(argc, argv);

Crea el objeto QApplication llamado app y pasa como parámetros los argumentos de línea de comandos.

QLabel label("Hola Mundo!");

Crea un objeto QLabel llamado label, y la cual contendrá el texto que queremos mostrar en pantalla, el cual especificamos como argumento del constructor.

label.show();

Muestra la etiqueta en pantalla. Qt se encargará de crear una ventana para poder mostrar la etiqueta en pantalla ya que nosotros no hemos asignado alguna.

return app.exec();

Inicia el hilo principal de la aplicación a partir de este momento el framework toma el control de la aplicación y responde a la interacción del usuario con los controles de interfaz gráfica de acuerdo a todo lo especificado anteriormente. La sentencia return regresa al sistema operativo la respuesta de la ejecución del programa una vez que ha finalizado, esta respuesta típicamente será cero en caso de que la aplicación se haya ejecutado exitosamente.

Construcción de un Proyecto Utilizando la Terminal

Escribimos el texto del ejemplo en un archivo de texto sin formato utilizando una herramienta como el bloc de notas de Windows o editores de texto plano de GNU/Linux como GEdit, guardamos el archivo como holamundo.cpp o cualquier otro nombre con extensión “.cpp”. Abrimos una terminal en la ubicación de nuestro archivo holamundo.cpp y ejecutamos los siguientes comandos:

Para crear un archivo de proyecto para nuestra aplicación ejecutamos el comando:

qmake -project

Creamos un archivo de proyecto específico para la plataforma o SO en el que estamos trabajando con el comando:

qmake

Para especificar el archivo de proyecto a utilizar, muy útil cuando existe más de un archivo de proyecto en nuestro directorio de trabajo actual, ejecutamos el comando:

qmake [nombre-de-archivo-de-proyecto].pro

Para generar el archivo ejecutable de nuestra aplicación, ejecutamos el comando:

make

o si utilizamos Windows el comando será:

mingw32-make

Al igual que sucedía con los archivos de proyecto, si existe más de un archivo de construcción de proyecto habrá que especificar el nombre del archivo que deseamos que se procese.

Para ejecutar el archivo ejecutable generado por el compilador al procesar nuestro código, utilizamos el comando: ./holamundo o si utilizamos Windows, el comando será: holamundo.exe

Construcción de un Proyecto Utilizando Qt Creator

Ejecutamos la aplicación Qt Creator seleccionándola del menú de aplicaciones de nuestro sistema. Al hacerlo veremos la pantalla de bienvenida de Qt Creator.

En ella seleccionamos la opción "New File or Project..." del Menú "File". Veremos un asistente de creación de nuevo proyecto, para este ejemplo seleccionaremos un proyecto vacío.

En el siguiente paso del asistente seleccionamos las plataformas (targets) para las cuales deseamos construir nuestra aplicación Qt, para este ejemplo nos sirve cualquiera, nosotros elegimos Desktop/Escritorio.

En los pasos siguientes del asistente se nos solicitará el nombre del archivo e información sobre control de versiones, para el nombre nos sirve cualquiera, nosotros utilizamos HolaQt.cpp y para el control de versiones por ahora basta con presionar "Finish".

Agregamos un nuevo archivo al proyecto, haciendo clic derecho en la carpeta principal del proyecto y seleccionando la opción "Add New..." del menú contextual que aparece. Escribimos el código del ejemplo y presionamos el botón de ejecutar y construir aplicación. El botón de ejecutar y construir es el botón con una flecha color verde colocado en la parte inferior izquierda de la interfaz de Qt Creator, o presionamos Ctrl+R es el atajo de teclado para ejecutar la acción que realiza este botón. Esperamos a que la compilación termine y veremos nuestro programa en ejecución.

Esperamos le ha resultado interesante este artículo, envíenos sus comentarios.

{ Leer Más }


martes, 14 de mayo de 2013

Introducción al Framework Qt 5 para el desarrollo de aplicaciones multiplataforma.

clip_image001

Muchos desarrolladores de software están complacidos con las mejoras que trae la nueva versión de Qt 5. Esta versión pone el foco en Qt Quick, en la experiencia de usuario y en la aceleración gráfica basada en OpenGL/OpenGLES. Esta versión también perfecciona el rendimiento, la funcionalidad y la facilidad de implementación en todo tipo de proyectos, desde apps de escritorio a móviles.

Para los que no lo conocen, Qt es un framework multiplataforma ampliamente usado para desarrollar aplicaciones con interfaz gráfica de usuario, así como también para el desarrollo de programas sin interfaz gráfica, como herramientas para la línea de comandos y consolas para servidores. Qt es desarrollada como un software libre y de código abierto a través de Qt Project [1] donde participa tanto la comunidad, como desarrolladores de Nokia, Digia y otras empresas. Qt es distribuida bajo los términos de Licencia GNU LGPL 2.1, GNU GPL 2 y 3, por otro lado Digia está a cargo de las licencias comerciales. Qt utiliza el lenguaje de programación C++ de forma nativa, adicionalmente puede ser utilizado en varios otros lenguajes de programación a través de bindings. Funciona en todas las principales plataformas, y tiene un amplio apoyo. El API de la biblioteca cuenta con métodos para acceder a bases de datos mediante SQL, así como uso de XML, gestión de hilos, soporte de red, una API multiplataforma unificada para la manipulación de archivos, ficheros, estructuras de datos tradicionales y otros.

¿Qué hay de nuevo en Qt 5?

  • Muchas mejoras gráficas y de rendimiento. Especialmente orientadas a entornos embebidos y móviles. Qt Quick 2 aporta grandes avances, basado en OpenGL incluye un sistema de partículas y una colección de efectos avanzados. También incluye soporte esencial para Qt Multimedia.
  • Productividad y flexibilidad para el desarrollador. JavaScript y QML son el centro de Qt 5 manteniendo la compatibilidad y funcionalidad plena sobre C++. Qt WebKit 2 hará que HTML5 sea otra opción más para nuestros desarrollos.
  • Facilita la portabilidad. Ahora todo es más sencillo para los desarrolladores gracias a la nueva estructura de Essentials y de la estructura modular.
    • Essentials :Qt Core, Qt GUI, Qt Multimedia, Qt Network, Qt Qml, Qt Quick, Qt SQL, Qt Test, Qt WebKit, Qt WebKit Widgets, Qt Widgets.
    • Add-ons : Qt D-Bus, Qt Graphical Effects, Qt Image Formats, Qt OpenGL, Qt Print Support, Qt Declarative, Qt Script, Qt Script Tools, Qt SVG, Qt XMLand Qt XML Patterns.

Así pues Qt 5.0 final trae mejoras en varios aspectos: rendimiento, funcionalidad y facilidad de implementación en todo tipo de proyectos, desde apps de escritorio a móviles, siendo este último punto de especial interés para los desarrolladores ya que Digia promete la mayor integración posible con Android e iOS a medio plazo.

Técnicamente Qt integra un nuevo código modular (núcleos para el desarrollo de apps y servicios y complementos que pueden ser añadidos sólo cuando se necesita) que mejora la capacidad multiplataforma del toolkit además de que mejora y reduce (en muchos casos) el tamaño final de las apps creadas con este toolkit.

Respecto a los gráficos se ha optado por OpenGL ES. Las opciones para integrar la navegación web se han mejorado gracias a las optimizaciones en HTML5 así como en el soporte para Qt 4. Es decir, lo que técnicamente se llama retrocompatibilidad.

Qt5 presenta algunas novedades, como añadidos en el núcleo (JSON, más y mejor soporte de C++11), uso de una plataforma de abstracción (QPA) que facilitará completar el porte a Android e iOS, el uso de XCB en lugar de Xlib en X11, una nueva API multimedia, mejoras en los métodos de entrada, más funcionalidad en el módulo de red, grandes progresos en QtWebkit, y algunos detalles más. Otro aspecto importante es el uso de Qt Quick 2, que permite crear fácilmente interfaces de usuario vistosas en un lenguaje declarativo (QML, muy similar a JSON) haciendo uso de funcionalidades gráficas potentes, y dejando lo más pesado al código nativo, o programando las partes de la interfaz que necesiten código imperativo en JavaScript.

Esto es todo por hoy, en próximos artículos estaremos abordando otros temas relacionados al framework Qt; cuya popularidad sigue en aumento, vale destacar que es usado en: Autodesk Maya, The Foundry's Nuke, Adobe Photoshop Album, Google Earth, Skype, VLC media player, VirtualBox, Dassault DraftSight, y Mathematica, y por la Agencia Espacial Europea, DreamWorks, HP, KDE, Lucasfilm, Panasonic, Philips, Samsung, Siemens, Volvo, Walt Disney Animation Studios y Research In Motion.

{ Leer Más }


IconIconIcon