FireMonkey (abreviado FMX ) es un marco de interfaz gráfica de usuario multiplataforma desarrollado por Embarcadero Technologies para su uso en Delphi o C ++ Builder , utilizando C ++ u Object Pascal para crear aplicaciones multiplataforma para Windows , macOS , iOS y Android . Una biblioteca de terceros, FMX Linux , permite la creación de aplicaciones FireMonkey en Linux.
Autor (es) original (es) | Embarcadero Technologies (2011) |
---|---|
Desarrollador (es) | Tecnologías Embarcadero |
Escrito en | Delphi |
Sistema operativo | Multiplataforma ( Windows , macOS , iOS , Android ) |
Tipo | GUI , RTL |
Licencia | Licencia de propiedad comercial |
Sitio web | www |
Historia
FireMonkey se basa en VGScene, que fue diseñado por Eugene Kryukov de KSDev de Ulan-Ude , Rusia [1] como una GUI basada en vectores de próxima generación . En 2011, VGScene se vendió a la empresa estadounidense Embarcadero Technologies. Kryukov siguió participando en el desarrollo de FireMonkey. Junto con la biblioteca de componentes visuales (VCL) tradicional de Windows , el marco FireMonkey multiplataforma se incluye como parte de Delphi, C ++ Builder y RAD Studio desde la versión XE2. FireMonkey comenzó como un marco de interfaz de usuario basado en vectores, pero evolucionó para convertirse en un marco de interfaz de usuario [2] basado en mapa de bits o ráster para brindar un mayor control del aspecto para que coincida con las apariencias de la plataforma de destino.
Descripción general
FireMonkey es un marco de interfaz de usuario multiplataforma y permite a los desarrolladores crear interfaces de usuario que se ejecutan en Windows, macOS, iOS y Android. Está escrito para usar la GPU siempre que sea posible, y las aplicaciones aprovechan las funciones de aceleración de hardware disponibles en Direct2D en Windows Vista , Windows 7 , Windows 8 y Windows 10 , OpenGL en macOS, OpenGL ES en iOS y Android, y en plataformas Windows. donde Direct2D no está disponible ( Windows XP por ejemplo) recurre a GDI + .
Las aplicaciones e interfaces desarrolladas con FireMonkey se dividen en dos categorías, HD y 3D . [2] Una aplicación HD es una interfaz bidimensional tradicional; es decir, elementos de la interfaz de usuario en la pantalla. Se lo conoce como HD porque FireMonkey utiliza mapas de bits de resolución múltiple en su sistema de estilo dinámico para aprovechar las pantallas de alta resolución. El segundo tipo, una interfaz 3D, proporciona un entorno de escena 3D útil para desarrollar visualizaciones. Los dos se pueden mezclar libremente, con elementos 2D (controles de IU normales como botones) en una escena 3D, ya sea como una superposición o en el espacio 3D, y escenas 3D integradas en la interfaz 2D "HD" normal. El marco tiene soporte incorporado para efectos (como desenfoques y brillos, entre otros) y animación, lo que permite construir fácilmente interfaces fluidas modernas de estilo WPF . También admite temas nativos, por lo que una aplicación FireMonkey puede parecerse mucho a la nativa en cada plataforma. Los controles nativos se pueden usar en Windows, macOS, iOS y Android a través de bibliotecas de terceros [3] y la propiedad ControlType. [4]
FireMonkey no es solo un marco visual, sino un marco de desarrollo de software completo, y conserva muchas características disponibles con VCL . Las principales diferencias son: [5]
- Compatibilidad multiplataforma
- Cualquier componente visual puede ser hijo de cualquier otro componente visual, lo que permite la creación de componentes híbridos.
- Soporte de estilo incorporado (ahora también disponible en VCL)
- Uso de números de punto flotante de precisión simple para la posición, etc. en lugar de números enteros.
- Soporte para efectos visuales basados en sombreadores de GPU (como Glow , Inner Glow , Blur , por ejemplo) y animación de componentes visuales
Debido a que el marco es compatible con varias plataformas, se puede usar el mismo código fuente y diseño de formulario para implementar en las diversas plataformas que admite. Admite de forma nativa ejecutables de 32 y 64 bits en Windows, ejecutables de 32 bits en macOS, ejecutables de 32 y 64 bits en iOS y ejecutables de 32 y 64 bits en Android. [6] FireMonkey incluye servicios de plataforma que adaptan la interfaz de usuario al comportamiento y apariencia correctos en cada plataforma de destino.
Desde su introducción en XE2, ha habido numerosas mejoras en muchas áreas del marco y se está desarrollando y mejorando activamente. Por ejemplo, el desarrollo de macOS está estrechamente integrado en el IDE, lo que requiere una Mac solo para la implementación. Se han agregado numerosos componentes como sensores, táctiles y GPS, especialmente útiles para quienes desarrollan aplicaciones móviles. También ha habido un rendimiento significativo y mejoras tecnológicas subyacentes.
Características
Gráficos
FireMonkey usa aceleración de hardware cuando está disponible en Windows, macOS, iOS y Android. Direct2D u OpenGL se pueden utilizar en Windows Vista , Windows 7 , Windows 8 y Windows 10 . En plataformas Windows donde Direct2D no está disponible ( Windows XP por ejemplo), recurre a GDI + . OpenGL se usa en macOS. OpenGL ES se usa en iOS y Android .
Estilos
Todos los controles en FireMonkey se pueden diseñar a través del sistema de estilo. Esto se logra adjuntando un TStyleBook al formulario, y se carga y aplica un estilo al formulario. En algunas plataformas, ciertos controles también se pueden configurar para usar una implementación de control proporcionada por el sistema operativo en contraste con la versión de Firemonkey auto-dibujada. Esto a veces agrega más funciones mientras elimina algunas características proporcionadas por la propia implementación de Firemonkey.
Servicios de plataforma
Además de los componentes visuales, FireMonkey proporciona una forma poco acoplada de acceder a funciones específicas de la plataforma independientemente de la plataforma. Esto también se muestra como comportamientos predeterminados de la plataforma. Por ejemplo, TabPosition de TTabControl tiene un valor de propiedad de PlatformDefault que mueve las pestañas hacia la parte superior en Android y la parte inferior en iOS automáticamente para estar en línea con las pautas de diseño para esas plataformas.
Referencias
- ^ "Desarrollo multiplataforma a la manera de FireMonkey" . Delphi Bistro . Consultado el 8 de octubre de 2016 .
- ^ a b "FireMonkey - RAD Studio" . docwiki.embarcadero.com . Tecnologías Embarcadero . Consultado el 17 de mayo de 2017 .
- ^ Software, TMS. "Software TMS" . www.tmssoftware.com . Consultado el 17 de mayo de 2017 .
- ^ "FMX.Controls.Presentation.TPresentedControl.ControlType - Documentación de la API de RAD Studio" . docwiki.embarcadero.com . Consultado el 17 de mayo de 2017 .
- ^ "VCL contra FireMonkey" . Podcast en Delphi.org . Consultado el 25 de julio de 2017 .
- ^ "Requisitos previos de la plataforma FireMonkey" . docwiki.embarcadero.com . Consultado el 5 de septiembre de 2020 .