tutorial example array and c++ flex qt air

example - flex bison c++



C++/Qt vs Adobe AIR (7)

Tengo que elegir una plataforma para nuestro producto. Debo decidir entre The Qt Framework y Adobe''s AIR. Estoy bien versado con Qt ya que he trabajado durante los últimos dos años. Miré el sitio de Adobe, pero toda la información sobre flex, flash, la capacidad de codificación en HTML / ActionScript es abrumadora y confusa. No puedo entender lo siguiente sobre el ecosistema de Adobe.

Tengo las siguientes preguntas en Adobe AIR:

  1. ¿Qué idioma utilizo para codificar mi aplicación? (no solo definir el aspecto de la interfaz de usuario)
    Al igual que en Qt utilizo C ++. ¿Es Actionscript?

  2. ¿Podemos decir que AIR solo sirve para crear interfaces de usuario para aplicaciones?

  3. ¿Dónde está el documento para las clases de utilidad junto con AIR?
    por ejemplo, http://qt-project.org/doc/ para Qt

  4. Qt se envía con un gran conjunto de widgets prefabricados que uno puede usar. ¿Adobe se envía con dicho conjunto de widgets y, de ser así, dónde puedo verlo como en la url?

  5. Entiendo que Flex SDK es de código abierto. ¿Puedo hacer aplicaciones comerciales y enviarlas? Does flex SDK envía todo (compilador, clases de utilidad / widgets)

  6. ¿Cuánto cuesta AIR en términos de licenciamiento?

  7. ¿Hay algo en AIR que sea equivalente a QGraphicsView of QT?


Flex es de código abierto, puede descargar el SDK gratis, no hay costos de licencia asociados. (ver sus preguntas frecuentes )

Envían un ''generador flexible'', que es un Eclipse personalizado, creo, y que cuesta dinero, pero puedes trabajar perfectamente sin él.

Los documentos se pueden encontrar en las páginas livedoc de adobe . (que para algunos , es motivo suficiente para no gustarle a Adobe;))

Me pregunto, si usted está bien versado en QT, ¿por qué está considerando algo más? ¿Qué ventajas espera que AIR le brinde sobre QT?

Tengo algo de experiencia con QT y Flex, pero no lo suficiente como para pesar uno frente al otro. Sé que QT / C ++ es mucho, mucho más maduro que Flex / ActionScript.

Si ya conoces QT, no creo que el tiempo que pases aprendiendo un nuevo framework (y lenguaje de programación) te permita ganar lo suficiente para ser honesto ...


He usado QT y Flex (aunque no tanto Air en sí) y he descubierto que Flex es más rápido para poner aplicaciones en funcionamiento y modificarlas, mientras que QT te brinda más control, especialmente en el instalador. El instalador de la aplicación Air es bastante incómodo, o al menos lo fue cuando lo probé, aunque puede haber sido mejorado desde entonces.

La gran ventaja de Air es que gran parte del código se puede ejecutar en Flash dentro de las páginas web. No puede acceder al sistema de archivos local, etc., desde la web por razones de seguridad, pero casi todo lo demás es portátil.


Si necesita acceder a muchas bibliotecas nativas, deberá permanecer dentro de su entorno QT. Tenga en cuenta que AIR tiene un solo subproceso y se ejecuta en Flash Player (algo que originalmente se diseñó para animaciones basadas en cuadros). Sin embargo, dependiendo del estilo de aplicación que esté creando, AIR puede serle útil.

Tenga en cuenta que AIR puede ser confuso porque hay algunas rutas de desarrollador diferentes para crear aplicaciones de AIR: 1) usando html / javascript y AIR SDK, 2) usando Flash / Actionscript y 3) usando Flex SDK y / o Flex Builder. El último es el más capaz en cuanto a antecedentes de desarrollo de escritorio tradicional.

Las aplicaciones pequeñas que son Web 2.0 para conectarse a los servicios web son buenos candidatos para las aplicaciones de AIR. Cosas como el cliente de mensajería instantánea Digsby sería genial. Mi aplicación de AIR favorita que he visto hasta ahora es Basamiq Mockups. Otras aplicaciones útiles son TweetDeck. Estos son buenos ejemplos de los tipos de cosas que son adecuadas para resolver con AIR.

Debería visitar Adobe Showcase y ver algunas aplicaciones: http://www.adobe.com/products/air/showcase/

Además, si estás buscando simplemente salir del juego de C ++, creo que QT tiene algunas vinculaciones de java ahora ... también recuerdo algunas vinculaciones de pitón, pero nunca las miro.

En cuanto a QGraphicsView, las personas han hecho cosas similares en Flex. Probé Google en este momento pero no pude encontrarlos inicialmente, pero las personas tomaron cosas como una imagen grande, y luego solo mostraron una región actual en la ventana. Además, en la próxima versión de Flex, están creando rápidamente un componente oficial de ViewPort:
http://opensource.adobe.com/wiki/display/flexsdk/Gumbo+Viewport



Pase tiempo con esta aplicación de AIR y luego pregúntese si Adobe Flex y AIR vale la pena invertir su tiempo en masterización (prepárese para preguntarse por qué no existe algo comparable para C ++ / QT):

Tour de Flex

Tour de Flex es una aplicación de escritorio que explora las capacidades y los recursos de Flex, incluidos los componentes Flex básicos, Adobe AIR e integración de datos, así como una variedad de componentes, efectos, máscaras y más de terceros.

Algunas de sus preguntas:

  • Flex se puede codificar en MXML y ActionScript3. AIR también es compatible con la programación de HTML / DOM / JavaScript, ya que el motor de renderizado HTML de webkit está integrado en el tiempo de ejecución de AIR.
  • MXML es una DSL declarativa XML que se compila en el código imperativo de ActionScript3. Sin embargo, es bastante bueno para codificar declarativamente las formas gráficas de la IU (es decir, las vistas del patrón MVC).
  • ActionScript3 tiene una heratige que se basa en JavaScript, pero se ha embellecido hasta el punto en que se parece más a Java o C #. Tiene espacio de nombres de paquete, clases e interfaces con herencia, palabras clave de protección de acceso de miembro de clase, constructores, miembros estáticos y algunas adiciones muy buenas sobre Java: propiedades, eventos, enlace de datos y cierres.

La programación de estilo flexible también es un modelo de subproceso único que se basa en interacciones de E / S asíncronas. Este es un modelo de programa más simple que las aplicaciones Java Winning con subprocesos múltiples o C # .NET Winform, pero permite lograr los mismos resultados netos del comportamiento del programa. Me explayé sobre eso aquí:

Flex Async I / O vs Java y C # Explicit Threading


Hice el movimiento opuesto. Empecé a trabajar en Adobe y me mudé a QT. La razón principal para hacerlo fue sobre las limitaciones del marco de Adobe. Cuando usa material de Adobe, está limitado a las herramientas que producen, es difícil introducir marcos de trabajo o bibliotecas externas, si no puede hacer lo que desea con Adobe. Por lo general, la solución para hacer esto es usar sockets, que transforma una supuesta aplicación "autónoma" en una arquitectura cliente-servidor. Además, si usa muchas cosas externas, puede ser difícil administrar tantos clientes diferentes. Usando QT puede codificar en C ++ y agregar cualquier marco externo o lib que desee. Aunque, algunas veces no puede ser fácil codificarlo, es posible y no tiene una arquitectura de sistema "extraña".


Voy a secundar el comentario de @ Pieter : si ya conoces QT, pasar a un entorno completamente nuevo tomará MUCHO más.

QT tiene la ventaja de ser multiplataforma y muy maduro: hay bibliotecas para Windows, Linux y Mac OS X. No estoy muy familiarizado con AIR más allá de saber que es de Adobe, pero el sitio del producto parece indicar que es para aplicaciones de Internet ricas ( http://www.adobe.com/products/air/ ). Si eso es cierto, entonces QT sería la opción mucho mejor si está desarrollando una aplicación de escritorio.