FireMonkey (abbreviated FMX) is a cross-platform GUI framework developed by Embarcadero Technologies for use in Delphi, C++Builder or Python, using Object Pascal, C++ or Python to build cross-platform applications for Windows, macOS, iOS, and Android. A third-party library, FMX Linux, enables the building of FireMonkey applications on Linux.
In 2021, FireMonkey for Python was released by Embarcadero, which was designed by Lucas Moura Belo. FireMonkey for Python is a natively compiled Python module powered by the Python4Delphi library. It gives Python developers access to the FireMonkey GUI framework and is freely redistributable. It fully supports Windows, MacOS, Linux, and Android GUI development.
Applications and interfaces developed with FireMonkey are separated into two categories, HD and 3D. An HD application is a traditional two-dimensional interface; that is, UI elements on the screen. It is referred to as HD because FireMonkey utilizes multi-resolution bitmaps in its dynamic style system to take advantage of high-DPI displays. The second type, a 3D interface, provides a 3D scene environment useful for developing visualisations. The two can be freely mixed, with 2D elements (normal UI controls such as buttons) in a 3D scene, either as an overlay or in the 3D space, and 3D scenes integrated into the normal 2D "HD" interface. The framework has inbuilt support for effects (such as blurs and glows, as well as others) and animation, allowing modern WPF-style fluid interfaces to be easily built. It also supports native themes, so that a FireMonkey application can look very close to native on each platform. Native controls can be used on Windows, macOS, iOS and Android through both third-party libraries and the ControlType property.
FireMonkey is not only a visual framework but a full software development framework, and retains many features available with VCL. The major differences are:
Due to the framework being cross-platform compatible, the same source code and form design can be used to deploy to the various platforms it supports. It natively supports 32-bit and 64-bit executables on Windows, 32-bit executables on macOS, 32-bit and 64-bit executables on iOS, and 32-bit and 64-bit executables on Android. FireMonkey includes platform services that adapt the user interface to the correct behavior and appearance on each target platform.
Since its introduction in XE2, there have been numerous improvements in many areas of the framework and it is being actively developed and improved. For example, macOS development is integrated tightly into the IDE, requiring a Mac only for deployment. Numerous components such as sensors, touch and GPS have been added, especially useful for those developing mobile apps. There have been significant performance and underlying technical improvements, too.
|
|