Delphi XE2 IDE with cross-platform Firemonkey framework project loaded
|Original author(s)||Embarcadero Technologies (2011)|
|Operating system||Cross-platform (Windows, Mac OS X, iOS, Android)|
FireMonkey is a cross-platform GUI Framework developed by Embarcadero Technologies for use in Delphi, C++Builder, and AppMethod with C++ or Object Pascal to build cross platform applications for Android, iOS, Windows, and Mac OSX.
FireMonkey was designed by Eugene Kryukov of KSDev from Ulan-Ude, Russia as a next generation vector-based GUI framework called VGScene. In 2011 it was sold to the American company Embarcadero Technologies and included as a library with their products. FireMonkey is, along with the traditional Visual Component Library, part of Delphi, C++Builder and RAD Studio since version XE2.
FireMonkey is a cross-platform UI framework, and allows developers to create user interfaces that run on Windows, OSX, iOS and Android. It is written to use the GPU where possible, and applications take advantage of the hardware acceleration features available in Direct2D on Windows Vista, Windows 7 and Windows 8, OpenGL on Mac OS X, OpenGL ES on iOS and Android, and on Windows platforms where Direct2D is not available (Windows XP for example) it falls back to GDI+.
Applications and interfaces developed with FireMonkey are separated into the 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 is wholly vector UI library, and scales without loss of definition. 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 a FireMonkey application, though usually using FireMonkey controls not platform-native controls, can look very close to native on each platform. Native controls can be used on OSX, iOS and Android through third-party libraries.
Firemonkey is not only a visual framework but a full software development framework, and retains many features available with VCL. The major differences are:
- Cross-platform compatibility
- Vector drawn interface elements
- Any visual component can be a child of any other visual component, allowing for creation of hybrid components
- Built-in styling support
- Support for visual effects (such as Glow, Inner Glow, Blur for example) and animation of visual components
Due to the framework being cross-platform compatible, the same source code can be used to deploy to the various platforms it supports. It natively supports 32-bit and 64-bit executables on Windows, and 32-bit executables on Mac OS X and iOS, as well as native executables on Android.
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, OSX 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 tech improvements too.
FireMonkey does not support RighttoLeft languages.
Firemonkey uses hardware acceleration when available on Android, iOS, Windows, and Mac OS X. Direct2D or OpenGL can be used on Windows Vista, Windows 7 and Windows 8. On Windows platforms where Direct2D is not available (Windows XP for example) it falls back to GDI+. OpenGL is used on Mac OS X. OpenGL ES is used on iOS and Android.