Wenn man Delphi (RAD Studio) für die Entwicklung von Mobile-Apps einsetzt, geht es in der Regel um einen schnellen Entwicklungszyklus, eine gemeinsame Codebasis und die Erstellung nativer Applikationen. Die integrierte Entwicklungsumgebung (IDE) kompiliert Object Pascal direkt zu nativen Binarys. Das bedeutet, die Apps kommen ohne Laufzeitumgebungen oder virtuelle Maschinen auf den Zielgeräten aus. Dadurch haben sie einen schnellen Zugriff auf Systemressourcen und APIs beider Plattformen. Mit dem plattformübergreifenden Framework FireMonkey (FMX) lassen sich Mobile-Oberflächen für Android und iOS gleichzeitig entwickeln und pflegen. Dabei arbeitet man vollständig in einem grafischen Designer, d. h., das User Interface wird intuitiv grafisch erstellt. Bei Bedarf kann derselbe Code auch zu Applikationen für Windows, macOS oder Linux (Desktop) kompiliert werden. Das Ziel ist, mit hoher Entwicklungsgeschwindigkeit marktfähige Anwendungen zu liefern (Rapid Application Development). Visuelles UI-Design, Komponentenwiederverwendung und Bibliotheken wie FireDAC für den Datenzugriff oder ein gut konfigurierbarer REST-Client tragen dabei zur Beschleunigung der Umsetzung bei. In diesem Artikel untersuchen wir die Frage, wie gut sich die aktuelle Version RAD Studio 12.3 („Athens“) für die Entwicklung von Mobile-Apps eignet.
Zielplattformen und Anforderungen
Mit Blick auf die Mobile-Plattformen unterstützt RAD Studio seit dem Update auf Version 12.3 iOS 18 und Android 15 mit API-Level 35 [1]. Delphi läuft ausschließlich auf einem Windows-Betriebssystem. Für die plattformspezifische Entwicklung (Android, iOS) sind daher spezifische Build-Schritte notwendig. Für iOS bedeutet das: Kompilierung, Signierung und Deployment erfolgen über einen Mac mit installiertem Xcode und PAServer. Delphi unterstützt den iOS-Simulator, jedoch ausschließlich auf ARM-basierten Macs, d. h. den neueren Prozessoren Apple Silicon M1 bis M4. Im Umkehrschluss bedeutet das, dass eine entwickelte iOS-App nicht auf dem Simulator eines Intel-Macs gestartet werden kann [2]. In diesem Fall bleibt nur der Test auf physischen Geräten, d. h., man muss ein iPhone via WLAN oder USB mit dem Mac koppeln.
Für Android ist die vollständige Toolchain (SDK, NDK, Gradle und Emulatoren) direkt in die IDE integriert. Zwar lassen sich Apps auch im Android-Emulator ausführen, dieser ist jedoch oft sehr langsam und bietet nur eingeschränkten Support für Hardwarefunktionen wie GPS, Kamera oder Sensoren. Embarcadero, das Unternehmen, das Delphi entwickelt und vertreibt, empfiehlt deshalb, für Tests ein physisches Android-Gerät zu verwenden [3]. Auf diesen Punkt kommen wir im Laufe des Artikels nochmals zurück. Die Kombination aus Entwicklung auf einem Windows-Rechner und plattformspezifischer Build-Infrastruktur ist durch die Nutzung von mehreren Betriebssystemen (Windows, macOS, Android, iOS) durchaus komplex, jedoch auch ein typisches Merkmal der plattformübergreifenden Programmierung.
Systemumgebung aufsetzen
Die Entwicklung von Cross-Platform-Apps, d. h. in diesem Fall von Apps für mobile Geräte mit den Betriebssystemen iOS und Android, erfordert einige Überlegungen und gelegentlich auch etwas „Bastelarbeit“. Im Folgenden wird eine Konfiguration vorgestellt, die eine gute Ausgangsbasis für die Entwicklung von Mobile-Apps darstellt und die Nutzung von Emulator (Android) und Simulator (iOS) ermöglicht. Wir gehen auf die folgenden Punkte ein:
-
Systemumgebung: Windows mit RAD Studio
-
Verbindung zu einem iOS-Simulator
-
Verbindung zu einem Android-Emulator
Entwicklermaschine mit RAD Studio auf Windows in einer virtuellen Maschine
Als Entwicklermaschine haben wir einen leistungsstarken Mac, beispielsweise ein MacBook Pro, gewählt. Damit ist eine Entwicklung für beide Zielsysteme (iOS und Android) möglich. Prinzipiell ist auch eine Entwicklung für die Desktopsysteme Windows, macOS und Linux möglich, die hier jedoch außen vor bleibt. Es kommt ein Mac mit einem ARM-Prozessor (M1 bis M4) und ausreichend Arbeitsspeicher sowie CPU-Leistung zum Einsatz.
Für diese Wahl gibt es mehrere Gründe. Zum einen kann der iOS-Simulator aus RAD Studio nur in der ARM-Version genutzt werden (siehe oben). Auch der Android-Emulator arbeitet auf einem ARM-Prozessor besser. Delphi kompiliert native Android-Apps, die unmittelbar auf den Android-Geräten installiert und ausgeführt werden. Um traditionell einen Android-Emulator auf einem Desktop-PC (x64-Architektur) nutzen zu können, musste beim Aufsetzen des Emulators ein entsprechendes x64-Image gewählt werden. Wurde ein ARM-Image gewählt, musste der Hostcomputer die Übersetzung zwischen den Betriebssystemen (x64 nach ARM) aufwendig durchführen. Das führte zu einer sehr langsamen Ausführungsgeschwindigkeit des Android-Emulators.
Da Delphi native, ARM-basierte Android-Apps kompiliert, konnten diese nicht vernünftig auf einem Emulator getestet werden. In der Dokumentation wurde daher darauf hingewiesen, dass man zum Testen besser direkt ein physisches Gerät einsetzt. Mit den neuen ARM-Prozessoren von Macs sieht die Sache anders aus. Hier entfällt die Übersetzung zwischen ARM- und x64-Architekturen, da sowohl macOS als auch Android auf der ARM-Architektur basieren.
Zur Einrichtung der Entwicklungsumgebung nutzen wir die Virtualisierungslösung Parallels unter macOS. In Parallels können wir ein Windows-System installieren. Dabei installiert Parallels die ARM-Version von Windows. Die Installation und Einrichtung erfolgen zügig und werden durch einen Assistenten von Parallels unterstützt. Auf dem ARM-basierten Windows kann anschließend RAD Studio nach bekanntem Muster installiert werden. Windows ARM kann auch x64-Programme ausführen.
Es gelten jedoch folgende Zusammenhänge: RAD Studio selbst existiert derzeit nicht als native ARM64-Version für Windows, sondern ausschließlich für klassische x86- und x64-Systeme. Auf einem Windows-on-ARM-Gerät (hier eine virtuelle Maschine) wird die IDE daher über die integrierte Emulationsschicht von Windows 11 ausgeführt. Diese Emulation ermöglicht die Ausführung von 32- und 64-Bit-x86-Anwendungen und stellt somit eine hohe Kompatibilität sicher. Ist die Hardwareplattform ausreichend leistungsfähig, sind Einschränkungen in der Ausführungsgeschwindigkeit nicht störend bzw. nicht bemerkbar. Insbesondere bei rechenintensiven Aufgaben und größeren Projekten kann dieser Umstand jedoch von Bedeutung sein. Auch die mit RAD Studio erzeugten Windows-Anwendungen liegen standardmäßig als Win32- oder Win64-Binarys vor und laufen auf Windows-on-ARM ebenfalls nur über die Emulation. Eine direkte Unterstützung der Zielplattform Windows ARM64 ist derzeit nicht vorgesehen, anders als bei iOS, Android oder Linux, wo RAD Studio bereits native ARM-Compiler anbietet. Das bedeutet für Entwickler:innen, dass ihre Delphi- oder C++Builder-Anwendungen auf ARM-basierten Windows-Geräten zwar grundsätzlich lauffähig sind, jedoch nicht die Performance erreichen, die mit einer nativen ARM64-Build-Toolchain möglich wäre.
Zusammenfassend können wir festhalten, dass wir RAD Studio zur Entwicklung auf einem ARM-basierten Windows ausführen können und keine größeren Einschränkungen festgestellt haben. Auch Windows-Apps (hier nur für Tests interessant) lassen sich damit erstellen.
Kommen wir nun zur Einrichtung der Systemkonfiguration für die Erstellung von Mobile-Apps für iOS (Simulator) und Android (Emulator). Beginnen wir mit iOS.
Dies ist der erste Teil unserer Artikelserie „Mobile-Apps mit Delphi – eine Review über Möglichkeiten und Grenzen“. Im nächsten Artikel erfährst du mehr über die konkrete Projektanlage, das UI-Design mit FireMonkey und die Nutzung von Gerätesensoren. Anschließend folgt der dritte Teil mit einem praxisnahen Beispiel für die App-Entwicklung.
Frequently Asked Questions (FAQ)
- Was ist Delphi for Mobile und wofür wird es verwendet?
Delphi for Mobile ist eine Entwicklungsumgebung für native Mobile-Apps, die es ermöglicht, Android- und iOS-Anwendungen aus einer gemeinsamen Codebasis zu erstellen. Der Fokus liegt auf schneller Entwicklung (Rapid Application Development) und nativer Performance. - Welche Plattformen und Betriebssysteme werden unterstützt?
RAD Studio 12.3 unterstützt Android 15 (API-Level 35) und iOS 18. Die Entwicklungsumgebung selbst läuft ausschließlich auf Windows, für iOS-Builds wird zusätzlich ein Mac mit Xcode und PAServer benötigt. - Wie funktioniert die plattformübergreifende Entwicklung mit Delphi?
Mit dem FireMonkey-Framework (FMX) lassen sich Benutzeroberflächen für Android und iOS gleichzeitig grafisch gestalten. Object Pascal wird direkt zu nativen Binarys kompiliert, wodurch keine Laufzeitumgebungen oder virtuelle Maschinen auf den Zielgeräten benötigt werden. - Welche Voraussetzungen gelten für die Nutzung von Simulatoren und Emulatoren?
iOS-Simulatoren werden nur auf ARM-basierten Macs (Apple Silicon M1–M4) unterstützt; Intel-Macs benötigen physische Geräte. Android-Emulatoren sind in der IDE integriert, laufen aber oft langsam, weshalb für Tests physische Android-Geräte empfohlen werden. - Wie wird die Entwicklungsumgebung für Mobile-Apps eingerichtet?
Die Basis ist ein Windows-Rechner mit RAD Studio, der über Parallels auf einem ARM-basierten Mac virtualisiert werden kann. So lassen sich sowohl der iOS-Simulator als auch der Android-Emulator nutzen, wobei die Emulation von x86/x64 auf ARM erfolgt. - Welche Einschränkungen bestehen bei der Nutzung von Windows-on-ARM?
RAD Studio läuft auf Windows-on-ARM nur über die integrierte Emulation für x86- und x64-Programme. Native ARM64-Builds für Windows werden derzeit nicht unterstützt, was die Performance bei rechenintensiven Projekten begrenzen kann. - Welche Komponenten und Tools beschleunigen die App-Entwicklung?
FireMonkey für UI-Design, FireDAC für Datenzugriff und ein konfigurierbarer REST-Client ermöglichen schnelle Umsetzung. Komponentenwiederverwendung und visuelles Design tragen zusätzlich zur Entwicklungsbeschleunigung bei. - Für welche Szenarien eignet sich Delphi besonders? Delphi eignet sich für Projekte, die schnelle Markteinführung, native Performance und eine gemeinsame Codebasis für Android und iOS erfordern. Der gleiche Code könnte auch für Desktop-Systeme wie Windows, macOS oder Linux genutzt werden, wird hier aber nicht im Detail behandelt.
Links & Literatur
[1] https://www.embarcadero.com/products/rad-studio/whats-new-in-12-athens
[4] https://docwiki.embarcadero.com/RADStudio/Athens/de/Installieren_des_Platform_Assistant_auf_dem_Mac.
[5] https://www.macincloud.com
[6] https://docwiki.embarcadero.com/RADStudio/Athens/en/Taking_Pictures_Using_FireMonkey_Interfaces
[9] https://github.com/veikkoEF/PhotoAndLocation/settings
[10] https://entwickler-konferenz.de/bootcamp-delphi-cross-platform-entwicklung-fuer-ios-und-android




