Building Mobile Appications (FMX)

Use your existing Delphi skills to deploy native apps to iOS and Android from a single FireMonkey (FMX) codebase.

Going Mobile with FireMonkey (FMX)

With over 73% of internet users turning to their mobile devices first, depending exclusively on a desktop-only application model limits the usefulness and reach of your software.

If you are a VCL desktop developer tasked with building a mobile application, the learning curve typically means abandoning your native language and diving into entirely disparate ecosystems (like Swift for iOS, Kotlin for Android, or web-based wrappers).

With FireMonkey (FMX) in RAD Studio, you do not need to replace your VCL applications. Instead, FMX acts as an addition to your toolkit. You can use the same Delphi and C++Builder business logic you have refined over decades and compile it natively to iOS, Android, Windows, macOS, and Linux from a single codebase.

Who this page is for

  • VCL teams adding iOS/Android delivery without rewriting in another language.
  • Teams that already modernized core upgrade blockers (Unicode, 64-bit, data layer).
  • Product owners needing faster path-to-store while preserving existing business logic.

https://www.youtube.com/watch?v=KnZHtCFZO_Q

How to create a real Android app step by step guide

Most of your code is already cross-platform

The shared codebase between VCL and FMX goes far deeper than just matching visual controls like TLabel or TEdit. RAD Studio ships with a rich set of cross-platform namespaces that work identically across Windows, macOS, iOS, Android, and Linux with no conditional compilation needed.

For example, System.IOUtils gives you a unified API for file and path operations on every target platform. The same applies to System.Threading, System.Net.HttpClient, System.JSON, and many more units in the RTL. Thanks to the strong component model and OOP design of Delphi and C++Builder, the common frameworks that underpin the visual layer are already multi-platform.

A large portion of your existing business logic, data access, and utility code can move to mobile with little or no modification. You are not rewriting, you are recompiling.

FMX vs VCL: The Same, But Different

FMX is designed to feel welcoming and immediately familiar to any VCL developer, while acknowledging that rendering across different operating systems requires a slightly different approach.

Layouts vs. Panels

In the VCL, you are likely used to dropping a TPanel, setting its alignment, and pinning controls inside it. Mobile devices rotate dynamically and come in hundreds of drastically different aspect ratios.

FireMonkey Layouts Strategies

The FireMonkey layouts extend the functionality of TControl to control the arrangement, sizing, and scaling of their child controls, and offer the possibility to manipulate a group of controls as a whole.

docwiki.embarcadero.com

In FMX, you embrace Layouts (TLayout, TScaledLayout, TFlowLayout). Unlike Panels, Layouts are lightweight, non-visual containers purely designed to orchestrate how controls flex, scale, and align fluidly based on the screen real estate of the device currently running the app.

Visual LiveBindings

Because mobile architectures strictly decouple data from the UI, classical data-aware controls (like TDBEdit) don't exist in FMX. Instead, you use Visual LiveBindings, an abstraction layer that allows you to visually map properties from any data source (a REST payload, an object, a database field) to any property of any UI control with zero code required.

LiveBindings in RAD Studio

LiveBindings is an expression-based framework, which means it uses bindings expressions to bind objects to other objects or to dataset fields.

docwiki.embarcadero.com

https://www.youtube.com/watch?v=SogtUeGKm4s

Convert your VCL Database Application to Mobile & Multiplatform

Developing for the Mobile Paradigm

Developing for mobile requires thinking differently than traditional Windows desktop development. Applications live in a sandboxed, low-power environment.

1. The Single Screen Lifecycle

Unlike desktop applications with floating MDI child windows or multi-monitor environments, mobile applications dominate a single screen. You must design fluid UX paths utilizing slide-in panes, tabbed views, and back-button navigations. FMX provides native mobile controls to adhere natively to iOS and Android design guidelines.

2. Permissions and Manifests

Mobile operating systems strictly lock down hardware access. If your app needs the camera, GPS, or local storage, you cannot simply call the API. FMX abstracts this complexity through Platform Services and allows you to easily configure App Manifests directly within the IDE, requesting secure permission natively from the user exactly when required.

Uses Permissions

How to use and configure specific permissions for an Android Application.

docwiki.embarcadero.com

3. File Security and App Store Deployment

Your app is locked to its own secure container. FMX simplifies deployment, allowing you to bundle local databases and assets directly into the application payload securely.

RAD Studio handles the complex signing, provisioning, and compilation steps required to generate the final binary payloads directly suitable for Google Play, Apple App Store and Windows Store.

4. Debugging on real hardware

Mobile debugging uses RAD Studio’s integrated multi-device debugger: you run from the IDE, set breakpoints, and step through code while the app executes on a connected device or emulator. Exactly the same workflow you are used to on Windows.

Debugging Multi-Device Applications

How to debug multi-platform applications from the IDE.

docwiki.embarcadero.com

PAServer (Platform Assistant) allows running and debuging on remote machines, most often on Linux or Mac on your network for iOS workflows (and related SDK deployment) so the IDE can deploy, debug, and copy files to that host. Android targets typically connect from your development PC without Platform Assistant.

PAServer, the Platform Assistant Server Application

Install the Platform Assistant on a remote system, in the same network as your development system, to let RAD Studio interact with that remote system.

docwiki.embarcadero.com

First mobile milestone

  • Build one focused user flow first (for example: sign-in, list, detail, submit).
  • Validate that flow on real devices early with the IDE debugger before scaling to full app scope.
  • Keep UI and data concerns separated so you can iterate mobile UX without destabilizing business rules.

Data Connectivity on Mobile Devices

The most critical architectural shift when moving a legacy application to mobile involves how data is handled.

Local Data - Accesing embbeded DBs with FireDAC

If your app needs to function offline or cache data, FMX and FireDAC support deploying and managing local, highly optimized for IBToGo or SQLite databases natively on both iOS and Android.

IBToGo is a zero-administration, embedded SQL database that provides a multi-platform solution featuring robust encryption at rest for secure data storage on any device and incremental syncronization using ChangeViews.

Remote Data (REST)

On desktop networks, maintaining a persistent, open TCP/IP connection directly to an SQL database (like Interbase, SQL Server or Oracle) is standard practice. On a mobile device, this is an anti-pattern. Mobile radios drop connections on cellular networks constantly, killing persistent TCP sockets and draining battery life.

To access enterprise data securely on mobile, you must transition to a stateless architecture. Your mobile FMX application should communicate via HTTP/HTTPS to a middle-tier REST server.

Crucial Tooling: To securely expose your existing legacy database directly to a mobile app via REST API, explore the path outlined in our Multi-Tier / RESTful APIs module. RAD Server is specifically designed to handle this exact scenario efficiently.

Avoid direct DB connections from mobile clients Treat direct database connectivity from mobile devices as a temporary workaround only. A REST middle tier gives you better security boundaries, token-based auth, retry behaviour, and cleaner versioning over time.

https://www.youtube.com/watch?v=JmOheeX1bIg

Multi Platform Explorations using Delphi, FMX, Feeds, REST and More

FireMonkey Mobile Development Resources

FireMonkey Quick Start Guide

The official introduction to FMX, covering project setup, layouts, and deploying to mobile and desktop targets.

docwiki.embarcadero.com

Ready to take the next step?

Our migration specialists have helped thousands of Delphi and C++Builder developers modernize their legacy architecture safely and efficiently.