FireMonkey (abreviado FMX ) es un marco de trabajo GUI multiplataforma desarrollado por Embarcadero Technologies para su uso en Delphi , C++Builder o Python , que utiliza Object Pascal , C++ o Python para crear aplicaciones multiplataforma para Windows , macOS , iOS y Android . Una biblioteca de terceros, FMX Linux , permite compilar aplicaciones FireMonkey en Linux .
Historia
FireMonkey se basa en VGScene, diseñado por Eugene Kryukov ( fallecido en 2024) [ 1 ] de KSDev de Ulan-Ude , Rusia [ 2 ] como una interfaz gráfica de usuario ( GUI) vectorial de próxima generación . En 2011, VGScene fue vendida a la empresa estadounidense Embarcadero Technologies. Kryukov continuó participando en el desarrollo de FireMonkey. Junto con la tradicional Biblioteca de Componentes Visuales (VCL) exclusiva para Windows, el marco multiplataforma FireMonkey 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 vectorial, pero evolucionó a un marco de interfaz de usuario basado en mapas de bits o raster [ 3 ] para brindar un mayor control de la apariencia y adaptarla a las apariencias de la plataforma de destino.
En 2021, Embarcadero lanzó FireMonkey para Python, diseñado por Lucas Moura Belo. FireMonkey para Python es un módulo de Python compilado de forma nativa, basado en la biblioteca Python4Delphi . Permite a los desarrolladores de Python acceder al framework de interfaz gráfica de usuario FireMonkey y es de libre distribución. Ofrece soporte completo para el desarrollo de interfaces gráficas de usuario en Windows, macOS, Linux y Android.
Descripción general
FireMonkey es un marco de interfaz de usuario multiplataforma que permite a los desarrolladores crear interfaces de usuario que se ejecutan en Windows, macOS, iOS y Android. Está diseñado 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 . [ 3 ] Una aplicación HD es una interfaz bidimensional tradicional; es decir, elementos de la interfaz de usuario en la pantalla. Se denomina HD porque FireMonkey utiliza mapas de bits multirresolución en su sistema de estilos dinámicos para aprovechar las pantallas de alta resolución (DPI). El segundo tipo, una interfaz 3D, proporciona un entorno de escena 3D útil para desarrollar visualizaciones. Ambas se pueden combinar libremente, con elementos 2D (controles de interfaz de usuario normales, como botones) en una escena 3D, ya sea como superposición o en el espacio 3D, y escenas 3D integradas en la interfaz 2D "HD" normal. El framework tiene soporte integrado para efectos (como desenfoques y brillos, entre otros) y animación, lo que permite crear fácilmente interfaces fluidas modernas al estilo WPF . También admite temas nativos, de modo que una aplicación FireMonkey puede tener una apariencia muy similar 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 [ 4 ] y la propiedad ControlType. [ 5 ]
FireMonkey no es solo un marco visual, sino un marco completo de desarrollo de software, y conserva muchas características disponibles con VCL . Las principales diferencias son: [ 6 ]
- 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 integrado (ahora también disponible en VCL)
- Utilizar números de coma flotante de precisión simple para la posición, etc., en lugar de números enteros.
- Compatibilidad con 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 múltiples plataformas, el mismo código fuente y diseño de formulario se puede usar para implementarlo 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. [ 7 ] 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, se han implementado numerosas mejoras en diversas áreas del framework, el cual continúa desarrollándose y perfeccionándose activamente. Por ejemplo, el desarrollo para macOS está totalmente integrado en el IDE, requiriendo únicamente una Mac para la implementación. Se han añadido numerosos componentes, como sensores, pantalla táctil y GPS, especialmente útiles para quienes desarrollan aplicaciones móviles. Asimismo, se han logrado mejoras significativas en el rendimiento y en la infraestructura técnica subyacente.
Características
Gráficos
FireMonkey utiliza aceleración por hardware cuando está disponible en Windows, macOS, iOS y Android. Direct2D u OpenGL se pueden usar en Windows Vista , Windows 7 , Windows 8 y Windows 10. En plataformas Windows donde Direct2D no está disponible ( Windows XP , por ejemplo), se recurre a GDI+ . OpenGL se usa en macOS. OpenGL ES se usa en iOS y Android .
Estilos
Todos los controles de FireMonkey se pueden personalizar mediante el sistema de estilos. Esto se logra adjuntando un TStyleBook al formulario, que luego carga y aplica un estilo. En algunas plataformas, ciertos controles también pueden configurarse para usar una implementación de control proporcionada por el sistema operativo, en lugar de la versión propia de FireMonkey. Esto a veces añade funcionalidades adicionales, aunque elimina algunas de las que ofrece la implementación de FireMonkey.
Servicios de plataforma
Además de los componentes visuales, FireMonkey ofrece una forma flexible de acceder a las funciones específicas de cada plataforma, independientemente de la plataforma en sí. Esto también se refleja en los comportamientos predeterminados de cada plataforma. Por ejemplo, la propiedad TabPosition del control TTabControl tiene el valor PlatformDefault , que mueve las pestañas automáticamente a la parte superior en Android y a la inferior en iOS, de acuerdo con las directrices de diseño de dichas plataformas.
Referencias
- ↑ Barker, Ian (19 de agosto de 2024). "Eugene Kryukov, 'padre de FireMonkey' y desarrollador increíblemente talentoso" . Consultado el 10 de octubre de 2025 .
- ↑ "Desarrollo multiplataforma al estilo FireMonkey" . Delphi Bistro . Consultado el 8 de octubre de 2016 .
- 1 2 "FireMonkey - RAD Studio" . docwiki.embarcadero.com . Embarcadero Technologies . 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 vs. FireMonkey" . Podcast en Delphi.org . 5 de octubre de 2016. Consultado el 25 de julio de 2017 .
- ↑ "Requisitos previos de la plataforma FireMonkey" . docwiki.embarcadero.com . Consultado el 5 de septiembre de 2020 .
- Bibliotecas informáticas
- Interfaces gráficas de usuario
- Bibliotecas de Pascal (lenguaje de programación)
- Software programado en Pascal