FireMonkey RAD Studio Overview
FireMonkey RAD Studio Overview
FireMonkey is the multi-device application framework behind RAD Studio, Delphi, and C++Builder. Embarcadero designed FireMonkey for teams
that want to quickly build and deploy native apps for Windows, macOS, Android, and iOS. We provide a full application stack across all platforms
that includes user interface, database, networking, inter-device communication, and other libraries. In addition, FireMonkey applications leverage
the full power of today’s hardware with native performance and GPU-accelerated visuals on PCs, tablets, and mobile devices. Full access to
platform APIs is also built-in. We do not believe in offering a ‘lowest common denominator’ experience across platforms, as other cross-platform
options do. Instead, we provide full-featured and powerful libraries in their own right, and full access to the native platform if required.
The FireMonkey UI framework is a next-generation
design that runs on the GPU. It is extremely fast and
provides scalable/high quality display. FireMonkey
supplies pixel-perfect platform-aware user interface
controls for Windows, macOS, iOS, and Android, with
the option to render true native controls on iOS and
Windows (Android and macOS are on the roadmap).
The FireUI Multi-Device Designer helps developers build
user interfaces once, ready for deployment to any device; live
preview in the IDE, or streamed to a physical device, enable
agile development of a single UI design that looks and fits right
on all platforms saving hours, if not days in user interface design
while also delivering a single codebase to manage.
to merely tweaking for a device or platform.
Building separate UIs is one of the lengthiest processes
in application design for multiple platforms. It is common
for developers to build an iOS UI and a completely
separate Android UI (with different tools and in a
different language) doubling development effort. With
FireMonkey, you can create a UI once, and make small
per platform changes. The result is a paradigm shift from
duplicated development (a huge time waste) to merely
tweaking for each device or platform.
Developers can target all major app stores (macOS, iOS,
Google, Amazon, and Windows) or build applications for in-
house, enterprise, or direct distribution all from one codebase.
With other tools an app developer might create an iOS user
interface in Xcode and Swift, and an Android user interface in
Android Studio and Java. Despite being very similar, these efforts
are entirely duplicate with no shared work.
With the FireMonkey framework in RAD Studio, you get a full range
of native styled user interface controls: buttons, listboxes, combo
boxes, etc. The apps you create include native platform controls like
the datepicker, maps support, different keyboard types, notifications,
and support for share sheet actions. For example, FireMonkey
controls like the maps component use the native APIs on each of
the underlying operating systems, using Google Maps on Android
and the MapKit Framework on iOS. This allows developers to utilize
the native controls on each platform, providing the performance and
UX customers expect while not having to worry about the platform
specific implementation details themselves.
FireMonkey applications can also be fully styled with custom
themes. Built-in animations, effects, transitions, and support for
building 3D applications are another key feature. FireMonkey UI
controls (that currently support native OS control presentations) use
the same underlying implementation as native SDKs like Cocoa on
iOS. This ensures that FireMonkey apps have the smooth native
scrolling and performance that end-users expect while allowing
developers to use the same component properties, methods, and
events on all operating systems.
FireMonkey relies on a multi-device runtime library that includes: threading and parallel programming support, file system access, local
and remote database access for relational and no SQL databases, HTTP and REST client library, and specific Cloud and BaaS clients.
The runtime also supplies components for directly accessing embedded devices like GPS, gyroscope, Bluetooth systems, and popular
IoT devices. All of these features are exposed with ready-to-use components and work the same way across all supported platforms.
Developers can write single source applications leveraging device capabilities and data connectivity.