Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Lesedauer 6 Min.

Delphi als Turbo für die mobile Entwicklung

Delphi ermöglicht es, effizient plattformübergreifende Anwendungen zu erstellen. In diesem ersten Teil der Serie beleuchten wir die Motivation ebenso wie das Setup eines ersten Beispielprojekts.
© EMGenie

Von seinen Wurzeln her ist Delphi eine Windows-Entwicklungsumgebung, doch seine Stärken zahlen sich in der Cross-Plattform-Entwicklung, auch für die mobilen Systeme, aus. Die Philosophie des Rapid Application Development (RAD) steht für schnelle Umsetzung durch visuelle Entwicklung und einen optimierten Compiler. Über einen grafischen Designer lassen sich Apps rasch zusammenstellen. Delphi unterstützt Windows, macOS, iOS, Android und Linux. Dies bedeutet Zeitersparnis – eine einzige Codebasis kann mehrere Plattformen bedienen.

Delphi-Anwendungen werden in Maschinencode kompiliert und benötigen keine Runtimes. Entsprechend entfallen externe Abhängigkeiten und Versionierungskonflikte. Das Ergebnis sind performante Apps und ein unkomplizierter Deployment-Prozess.

Cross-Plattform-Ansatz

Der Delphi-Compiler generiert aus einer Codebasis native Apps für die genannten Systeme, einschließlich Android und iOS. Um plattformspezifische Unterschiede in der Benutzeroberfläche zu realisieren, werden Multi-Device-Ansichten und eine Live-Gerätevorschau genutzt. Damit lassen sich Layouts für verschiedene Bildschirmgrößen und Ausrichtungen anpassen und simulieren. So kann man beispielsweise denselben Dialog für ein Smartphone kompakter gestalten als für ein Tablet oder den Desktop. Die Anwendungslogik bleibt dabei einheitlich. Falls nötig, können jedoch plattformspezifische Codeabschnitte über Compiler-Direktiven eingebunden werden. Delphi erlaubt es mit {$IFDEF}-Schaltern, bestimmte Funktionen nur auf Android oder iOS auszuführen, falls Hardware oder OS-APIs es erfordern. Insgesamt verfolgt Delphi das Prinzip „Write once, compile everywhere“.

FireMonkey für das UI

FireMonkey (FM) bildet die Grundlage für das plattformübergreifende GUI und die Anwendungslogik. Technisch handelt es sich um ein modernes, hardwarebeschleunigtes Framework. FM abstrahiert die plattformabhängigen Details, das heißt, alle relevanten UI-Komponenten (Buttons, Listen, Eingabefelder und dergleichen) sind in FM plattformneutral implementiert, können jedoch das native Look and Feel der Zielplattform annehmen. Über Styles lässt sich festlegen, ob ein Steuerelement im nativen Stil des Betriebssystems gezeichnet wird oder im anpassbaren FM-Stil.

Neben der Oberfläche stellt FM auch zahlreiche plattformspezifische Dienste und Komponenten bereit. Der Zugriff auf Kamera, GPS-Sensor, Beschleunigungsmesser und andere Hardware gelingt über einheitliche Klassen, egal ob auf Android oder iOS. Ebenso sind nichtvisuelle Komponenten für Datenbankzugriff (zum Beispiel FireDAC für SQLite, MySQL et cetera) oder REST-Webservices integriert, die auf allen Plattformen gleichermaßen funktionieren.

UI-Designer, Drag and Drop, Komponentenmodell

In Delphi nutzt man einen grafischen Designer und eine umfangreiche Komponentenbibliothek. Die IDE ermöglicht ein „What you see is what you get“-Design der Oberfläche. Man kann per Drag and Drop Steuerelemente aus der Tool-Palette auf das Formular ziehen und anordnen (Bild 1).

 

Der grafische Designer von Delphi (Bild 1)
Der grafische Designer von Delphi (Bild 1) © Autor

Eigenschaften der Elemente (Beschriftungen, Farben, Layout-Optionen) werden im Objektinspektor angepasst. Dieses Vorgehen beschleunigt die UI-Entwicklung, da man das Layout direkt sieht und iterativ verfeinern kann, anstatt es ausschließlich im Code zu beschreiben.

Auch komplexere Funktionen lassen sich über nichtvisuelle Komponenten abbilden, beispielsweise für Datenbankverbindungen, Timer, HTTP-Clients, Location-Services und vieles mehr. Man bindet diese ein, konfiguriert die Eigenschaften und bindet die Ereignisse. Delphi folgt dem ereignisgesteuerten Paradigma: Jedem UI-Element können Eventhandler zugeordnet werden. Ein Doppelklick auf einen Button im Designer erzeugt zum Beispiel eine Prozedur ButtonClick im Code, die mit dem Klick-Ereignis verknüpft ist. Der Entwickler ergänzt die gewünschte Aktion in diese Methode. Debugging und Testing sind ebenfalls in die IDE integriert: Delphi erlaubt das Setzen von Breakpoints und das Untersuchen von Variablen, auch wenn die App auf einem Mobilgerät läuft.

Einrichtung der Entwicklungsumgebung

Installieren Sie RAD Studio (Delphi) in einer aktuellen Version. Für Android ist die Installation des Android SDK erforderlich, inklusive der passenden API-Level und Build-Tools. Wichtig ist, dass ein unterstütztes NDK (Native Development Kit) installiert ist, da Delphi dieses für das Kompilieren von ARM-Code nutzt. Hat man das SDK konfiguriert, kann Delphi für Android direkt auf dem Windows-PC kompilieren. Es entstehen native APK-Dateien, die auf Android-Geräten lauffähig sind. Als Entwicklungsgerät kann ein Android-Smartphone dienen (USB-Debugging in den Entwickleroptionen aktivieren und per USB an den PC anschließen) oder ein Android-Emulator. Hinweis: Delphi generiert native ARM-basierte Android-Apps. Diese können nur eingeschränkt auf den üblichen Emulatoren unter Windows für Android (x86-/x64-Image) ausgeführt werden. Deutlich performanter ist ein Android-Emulator auf einem ARM-PC, wie beispielsweise einem Apple Mac-Book mit M1- bis M4-Prozessor. Über das Netzwerk kann eine Verbindung zu einem solchen Emulator hergestellt werden.

Für die iOS-Entwicklung sind die Anforderungen strenger, da Apple verlangt, dass iOS-Apps mit der Apple-Toolchain gebaut und signiert werden. Delphi löst dies durch den Platform Assistant (PAServer). Das ist ein Serverprogramm, das auf einem Mac läuft und von RAD Studio aus angesprochen wird. In der Praxis richtet man also einen Mac mit macOS ein, auf dem Xcode installiert ist, und startet dort den PAServer. In RAD Studio wird dieser Mac als Remote verwendet und die verfügbaren Devices werden angezeigt (Bild 2).

iOS-Devices werden über das Netzwerk eingeblendet (Bild 2)
iOS-Devices werden über das Netzwerk eingeblendet (Bild 2) © Autor

Wenn man nun ein iOS-Projekt baut, überträgt Delphi den Code an den PAServer und nutzt im Hintergrund den Apple-Compiler, um eine IPA-Datei zu erzeugen. Diese wird dann vom Mac aus auf das angeschlossene iPhone/iPad installiert (Xcode beziehungsweise Apple erlauben Debug-Deployments auf eigene Geräte, erfordern aber ein Entwicklerprofil). Voraussetzung ist, dass man im Apple Developer Program registriert ist und ein passendes Provisioning Profile sowie ein Entwicklungszertifikat eingerichtet hat. Das entspricht dem üblichen iOS-Deployment-Prozess.

Ist alles konfiguriert, kann man direkt aus RAD Studio heraus die App mit Run auf dem iOS-Gerät starten. Der Workflow ist dabei: Delphi –> PAServer (Mac) –> Gerät. Die Debugger-Kommunikation funktioniert über WLAN/LAN, sodass Breakpoints und Logging auch beim iOS-Device nutzbar sind.

Erstes Projekt

Für diese Serie wird eine mobile App (iOS, Android) programmiert, welche folgende Funktionen aufweist:

  • Aufnahme eines Bildes mit der Fotokamera: Nutzung der plattformübergreifenden Bibliothek zur Ansteuerung der Kamera.
  • Ermittlung des geografischen Standorts zum Zeitpunkt der Aufnahme: Nutzung der plattformübergreifenden Bibliothek zur Ermittlung der Geo-Position.
  • Anzeige der Informationen in einer scrollbaren Liste: individuelle Konfiguration der Listenelemente.
  • Speicherung der Daten: in einer lokalen SQLite-Datenbank und/oder in der Cloud.

 

Die einzelnen Funktionen werden schrittweise umgesetzt und die Meilensteine innerhalb dieser Serie besprochen. Den Projektfortschritt kann man auf GitHub verfolgen. In diesem Artikel starten wir ein neues geräteübergreifendes App-Projekt (Bild 3) und bringen die noch inhalts- und funktionsleere App auf Android und iOS zum Starten. Das UI wird im nächsten Schritt realisiert.

Ein neues Projekt für eine geräteübergreifende App anlegen (Bild 3)

Ein neues Projekt für eine geräteübergreifende App anlegen (Bild 3)

© Autor

Fazit und Ausblick

Die Entwicklung von mobilen Apps mit Delphi basiert auf einem Rapid-Application-Development-Ansatz und nutzt die Cross-Plattform-Bibliothek FireMonkey. Nach dem Projektsetup in diesem Teil erfolgt im nächsten Teil der Serie der Aufbau des User-Interfaces, das auf Android und iOS eine gute Figur machen soll.

Neueste Beiträge

SSH für.NET-Applikationen mit SSH.NET - Best of NuGet, Teil 1
SSH – dahinter verbirgt sich die Abkürzung Secure Shell – ist insbesondere im Bereich der unixoiden Systeme weit verbreitet. Mit SSH.NET steht ein NuGet-Paket zur Verfügung, das die Interaktion mit der sicheren Remote Shell aus .NET-Applikationen heraus zu ermöglichen sucht.
6 Minuten
25. Sep 2025
Ein Jahr CODELUTION Zertifizierungssystem – ein neuer Standard in der IT-Weiterbildung - [sponsered]
Das rollenbasierte Zertifizierungssystem für Entwickler-Schulungen der Karlsruher CODELUTION GmbH hebt sich bewusst von technologiegebundenen Zertifikaten ab.
3 Minuten
25. Sep 2025
DDC hakt nach: Wie baust Du eine Softwarearchitektur ohne Schuldenfalle auf?
Moderne Softwarearchitektur muss zukunftsfähig sein – aber auch schon heute funktionieren. David Tielke über den architektonischen Spagat zwischen Cloud, KI, Schuldenmanagement und gesundem Menschenverstand.
7 Minuten
22. Sep 2025

Das könnte Dich auch interessieren

Web- und App-Entwicklung vereint - SPAs mit Ionic und Capacitor
Warum SPAs und Hybrid-Apps mit Ionic und Capacitor den entscheidenden Wettbewerbsvorteil bieten und welche Herausforderungen dabei zu meistern sind.
20 Minuten
14. Apr 2025
iOS-Apps ohne Mac und Xcode - Tabris.js, Innoopract
Ein Notebook mit beliebigem Betriebssystem, ein Editor zum Schreiben des Quellcodes und das auf JavaScript basierende Tabris.js genügen, um Android- und iOS-Apps zu erstellen.
3 Minuten
27. Nov 2019
Einfach und schnell zur webbasierten Datenbank-App - GAPTEQ
Die Low-Code-Plattform GAPTEQ bietet bei der Entwicklung individueller Web-Anwendungen mit Zugriff auf SQL-Datenbanken eine nutzerfreundliche Alternative zu MS-Access.
2 Minuten
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige