Fortsetzung der Artikelserie „Mobile-Apps mit Delphi – eine Review über Möglichkeiten und Grenzen“. In Teil 1 haben wir die Grundlagen, Zielplattformen und die Einrichtung der Entwicklungsumgebung behandelt. In diesem Artikel geht es um Projektstart, UI-Design und Sensorintegration.
Set-up und Konfiguration für iOS-Apps
Der iOS-Simulator läuft unter macOS. Dieser soll aus RAD Studio (Windows) angesprochen werden, d. h., wir möchten das App-Package darauf installieren.
-
Installation unter macOS: Zunächst ist es notwendig, unter macOS die integrierte Entwicklungsumgebung Xcode (kostenfrei im App-Store erhältlich) zu installieren. Der Simulator für iOS wird im Zusammenhang mit Xcode eingerichtet. Über die Einstellungen von Xcode können auch unterschiedliche Versionen des Simulators (iPhone, iPad, verschiedene iOS-Versionen) installiert werden. Nach der Installation können Sie die Funktionsfähigkeit des Simulators eigenständig prüfen. Eventuell werden beim ersten Start noch notwendige Befehlszeilentools nachträglich eingerichtet. Um den iOS-Simulator aus RAD Studio über das Netzwerk fernzusteuern, wird das Tool PAServer (Platform Assistent Server) benötigt. Dieses können Sie von der Embarcadero-Webseite (RAD Studio) herunterladen. Die passende PAServer-Version zur entsprechenden RAD-Studio-Version finden Sie unter [4]. Achten Sie insgesamt darauf, dass die Versionen von iOS, Xcode, RAD Studio und PAServer miteinander kompatibel sind. Wenn etwas nicht funktioniert und die Fehlermeldung nicht eindeutig ist bzw. die Ursache unklar ist, kann eine neue Version eines Tools bereits die Lösung sein. Das Problem der Kompatibilität unterschiedlicher Softwareversionen tritt bei allen plattformübergreifenden Ansätzen zutage. Es kann also problematisch werden, wenn man unbedacht ein Update anstößt. Ein Beispiel: Man aktualisiert die iOS-Version auf seinem Endgerät. Um Apps für diese neue Version zu erstellen, ist auch ein Update von Xcode notwendig. So weit, so gut. Gleichzeitig muss jedoch auch die IDE RAD Studio mit den neuen Versionen von Xcode und iOS kompatibel sein. Hier gilt also: Nicht jedes Update sollte unmittelbar – ohne Prüfung der Auswirkungen auf die gesamte Entwicklungsumgebung – installiert werden. Etwas Sorgfalt zahlt sich hier oftmals aus. Mit diesen Schritten ist die Einrichtung auf macOS abgeschlossen. Wir notieren (kopieren) noch die IP-Adresse des Macs, um diesen über das Netzwerk erreichen zu können. Zum Abschluss starten wir PAServer. Bei aktivierter Instanz bleibt das zugehörige Terminalfenster geöffnet (Abb. 1).
-
Installation unter Windows: In RAD Studio aktivieren wir das Ziel iOS-Simulator im Projektmappen-Explorer. Anschließend müssen wir das entsprechende iOS-SDK zuweisen und installieren. Außerdem soll eine Verbindung zum Mac hergestellt werden. Dazu ist die IP-Adresse im entsprechenden Dialogfeld von RAD Studio einzugeben (Abb. 2). Sind diese Schritte abgeschlossen, werden die verfügbaren iOS-Simulatoren im Projektmappen-Explorer angezeigt (Abb. 3). Nun kann die aktive App auf dem ausgewählten Gerät installiert, ausgeführt und bei Bedarf auch debuggt werden.



Set-up und Konfiguration für Android-Apps
Wir sollen einen Android-Emulator unter macOS (ARM) einrichten und ihn über eine Netzwerkverbindung aus der virtuellen Maschine heraus mit RAD Studio nutzen. Dazu müssen wir die folgenden Schritte ausführen:
Installation des Emulators unter macOS: Am besten laden Sie Android Studio für macOS/ARM herunter und installieren es. Über das Startmenü von Android Studio kann man unmittelbar den Virtual Device Manager für die virtuellen Geräte aufrufen und mit dessen Hilfe einen Android-Emulator einrichten (Abb. 4).

Ist das erfolgt, testen Sie direkt den Start des Emulators. Sie werden die gute Performance auf einem ARM-Gerät spüren. Für den Zugriff auf den Emulator von „außen“ (Netzwerk) benötigen wir das Tool ADB (Android Debug Bridge). ADB ist ein zentrales Entwicklerwerkzeug im Android-Ökosystem, das eine direkte Schnittstelle zwischen einem Computer und einem Android-Gerät bereitstellt. Es ermöglicht die Verbindung von Geräten über USB oder ein Netzwerk und die Ausführung vielfältiger Aktionen – vom Installieren und Testen von Apps über den Zugriff auf Systemlogs bis hin zur Steuerung des Geräts per Kommandozeile. Typische Anwendungsfälle sind die Installation von APK-Dateien, das Auslesen von Logdaten zur Fehlersuche oder der Start einer interaktiven Shell, um direkt mit dem Android-Betriebssystem zu arbeiten. ADB installieren Sie (wenn noch nicht geschehen) über den SDK-Manager. Diesen erreichen Sie am einfachsten auch über Android Studio. Installieren Sie die Android SDK Platform-Tools. Ist das erfolgreich erledigt, dann können wir über die Konsole mit der ADB arbeiten.
Arbeiten auf macOS: Suchen Sie auf macOS den Pfad, unter dem die Android-SDK-Platform-Tools installiert sind. Das ist üblicherweise der Ordner ~/Library/Android/sdk/platform-tools. Öffnen Sie diesen Pfad in einem Terminal auf macOS. Starten Sie ebenfalls den zuvor installierten Emulator. Mit dem Befehl
./adb devices
sollte eine Liste der aktuellen (laufenden) Emulatoren angezeigt werden (Abb. 5).

Prüfen Sie dies, da die nächsten Schritte sonst nicht funktionieren. Damit der Emulator über das Netzwerk erreichbar ist, muss der ADB-Server gestartet und so konfiguriert werden, dass er auf eingehende Netzwerkabfragen lauscht. Das erreichen Sie folgendermaßen: Zuerst muss ein möglicherweise laufender Server mit dem folgenden Befehl beendet werden:
./adb kill-server
Nun können wir den Server neu starten und so konfigurieren, dass er auf eingehende Netzwerkverbindungen lauscht. Geben Sie dazu im Terminal ein:
./adb -a -P 5037 nodaemon server
Sie erhalten verschiedene Logging-Meldungen und das Terminalfenster bleibt intern blockiert. Das ist der Hinweis, dass der Server läuft (Abb. 6).

Lassen Sie das Terminalfenster unbedingt geöffnet. Öffnen Sie auf macOS ein zweites Terminal-Fenster und prüfen Sie den Status des Servers mit folgendem Befehl:
sudo lsof -nP -iTCP:5037 -sTCP:LISTEN
Sie werden zur Passworteingabe aufgefordert und erhalten eine Ausgabe, die angibt, auf welchen Netzwerkkanälen der ADB-Server lauscht. Wichtig ist der Verweis auf TCP/IP und den Port 5037. In der Standardkonfiguration lauscht der Server auf localhost (127.0.0.1). Mit unserem Befehl haben wir ihn dazu gebracht auch auf die eingehende Netzwerkverbindung zu achten. Ist das geschafft, ist die Konfiguration auf Seiten von macOS abgeschlossen. Weiter geht es mit Windows in unserer virtuellen Maschine.
Arbeiten unter Windows: Mit der Installation von RAD Studio wurde die Plattform Android hinzugefügt. Auch unter Windows benötigen wir die Android-SDK-Tools. Sofern die Installation vollständig ist, finden sich die SDK-Tools in der Regel im folgenden Verzeichnis: C:\Users\Public\Documents\Embarcadero\Studio\23.0\CatalogRepository\AndroidSDK-2525-23.0.55362.2017\platform-tools>.
Wechseln Sie in der Windows PowerShell in dieses Verzeichnis. Ebenso benötigen wir die IP-Adresse des Macs. Wechseln Sie dazu erneut auf den Mac und notieren bzw. kopieren Sie die IP-Adresse aus den Netzwerkeinstellungen. Geben Sie in der PowerShell-Konsole folgenden Befehl ein:
setx ADB_SERVER_SOCKET "tcp:192.168.2.128:5037"
Ersetzen Sie diese IP-Adresse durch die IP-Adresse Ihres Macs. Den Port belassen Sie auf 5037. Damit weisen Sie die ADB unter Windows an, die verfügbaren Geräte über das Netzwerk abzurufen. Anschließend sollten Sie die folgende Meldung erhalten: „ERFOLGREICH: Angegebener Wert wurde gespeichert.“
Nun folgt der spannende Test, ob wir den laufenden Android-Emulator von macOS von Windows aus sehen können. Geben Sie dazu in die PowerShell-Konsole ein:
./adb -H 192.168.2.128 -P 5037 Devise
Bitte ersetzen Sie wieder den Wert der IP-Adresse. Das Ergebnis sollte eine Liste der Android-Emulatoren von macOS sein (Abb. 7).

Android Emulator in RAD Studio verwenden: Starten Sie RAD Studio neu und öffnen Sie ein Multi-Device-Projekt, das unter anderem Android als Zielsystem hat. Im Projektmappen-Explorer wechseln Sie zu Zielsysteme | Android 64-Bit. Beim ersten Aufruf müssen Sie hier ggf. noch das Android-SDK zuweisen. Aktualisieren Sie anschließend den Pfadziel (Abb. 8).

Darunter sollte der Emulator, also das virtuelle Android-Gerät, erscheinen. Wenn das der Fall ist, haben Sie einen wichtigen Schritt gemeistert. Nun können Sie Ihre App aus RAD Studio auf dem Android-Emulator unter macOS ausführen. Herzlichen Glückwunsch!
Im dritten Teil unserer Serie zeigen wir ein praxisnahes Beispiel für die Umsetzung einer Mobile-App mit Delphi, inklusive Kamera, Geodaten und lokaler Datenspeicherung.
Frequently Asked Questions (FAQ)
- Welche Voraussetzungen sind notwendig, um einen iOS-Simulator unter macOS einzurichten?
Man benötigt Xcode, das kostenlos im Mac App Store erhältlich ist, sowie die Installation der gewünschten Simulator-Versionen über die Xcode-Einstellungen. Zusätzlich müssen eventuelle Befehlszeilentools installiert und PAServer für die Netzwerkverbindung zu RAD Studio eingerichtet werden. - Wie stellt RAD Studio auf Windows eine Verbindung zum iOS-Simulator auf dem Mac her?
In RAD Studio wird das iOS-SDK zugewiesen, das Ziel iOS-Simulator aktiviert und die IP-Adresse des Macs eingegeben. Nach Abschluss werden die verfügbaren Simulatoren im Projektmappen-Explorer angezeigt. - Was ist PAServer und welche Funktion erfüllt es?
PAServer (Platform Assistant Server) ermöglicht die Fernsteuerung des iOS-Simulators über das Netzwerk von RAD Studio aus. Es muss auf dem Mac gestartet und eine aktive Terminalinstanz geöffnet bleiben. - Wie wird ein Android-Emulator unter macOS installiert und getestet?
Android Studio wird installiert, anschließend über den Virtual Device Manager ein Emulator erstellt. Der Start des Emulators sollte direkt überprüft werden, um die Funktion und Performance zu testen. - Welche Rolle spielt ADB bei der Nutzung eines Android-Emulators von externen Systemen?
ADB (Android Debug Bridge) stellt eine Schnittstelle zwischen Computer und Android-Gerät bereit, ermöglicht Installation, Test und Debugging von Apps sowie Zugriff auf Systemlogs. Für die Netzwerkverbindung muss der ADB-Server gestartet und für eingehende Verbindungen konfiguriert werden. - Wie wird der Android-Emulator von macOS aus in einer Windows-Umgebung zugänglich gemacht?
Unter Windows wird die IP-Adresse des Macs in der PowerShell mit setx ADB_SERVER_SOCKET eingetragen. Anschließend kann der Emulator über den Befehl ./adb -H <IP> -P 5037 devices aufgelistet werden. - Wie kann der Android-Emulator in RAD Studio genutzt werden?
Nach Neustart von RAD Studio wird das Multi-Device-Projekt geöffnet, das Android als Zielsystem enthält. Der Pfad zum Android-SDK wird ggf. zugewiesen, danach erscheint der Emulator im Projektmappen-Explorer und kann zum Ausführen von Apps verwendet werden. - Welche Kompatibilitätsaspekte sind bei plattformübergreifender Entwicklung zu beachten?
Versionen von iOS, Xcode, RAD Studio und PAServer müssen miteinander kompatibel sein. Updates sollten nur nach Prüfung der Auswirkungen auf die gesamte Entwicklungsumgebung durchgeführt werden, um Probleme zu vermeiden.
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



