Über unsMediaKontaktImpressum
Olena Bochkor & Dr. Veikko Krypczyk 02. Januar 2018

Heterogene Endgeräte: Softwareentwicklung mit RAD Studio – Alle auf einen Streich!

Mit RAD Studio kann man ein relativ breites Feld an Applikationen auf den unterschiedlichen Systemen adressieren. © sdecoret / Fotolia.com
© sdecoret / Fotolia.com

Früher war es klarer! Wir hatten den Desktop und da gab es Windows. Und auf der Serverseite da hat man auf Linux gesetzt. Fertig! Heute ist die Welt viel bunter! Den Desktop gibt es immer noch, auch noch Windows. Aber im mobilen Bereich kommt man an Android und iOS nicht vorbei. Mit macOS gibt es eine viel genutzte Alternative für den Desktop. Diese Vielfalt ist aus Entwicklersicht sehr komplex. Hilfreich sind moderne Entwicklungsansätze, welche versprechen, mehrere Systeme und Geräte gleichzeitig zu adressieren, beispielsweise RAD Studio.

Die Nutzer möchten stets das System verwenden, welches ihnen in der jeweiligen Situation am besten geeignet ist. Auf dem Desktop sind es die aktuellen Versionen von Microsoft Windows und MacOS. Für mobile Geräte dominieren Android und iOS den Markt. Auf dem Server werden dagegen sehr oft Linux-Distributionen eingesetzt. Neben dieser Auswahl der verwendeten Betriebssysteme und deren Versionen spielt die heutige Gerätevielfalt eine große Rolle. Das Spektrum ist weitreichend. Smartphone, Tablet, Notebook und Personal Computer in Desktop-Form sind heute mit den unterschiedlichsten Hardwarevoraussetzungen im Einsatz.

Aus Sicht der Softwareentwicklung ist diese Vielfalt nicht unproblematisch. Idealerweise ist man als Entwickler in der Lage, einen großen Teil dieser Systemvielfalt mit seinen Applikationen zu adressieren. Die spezialisierte Entwicklung für jede einzelne Systemumgebung stellt zwar aus technischer Sicht den Idealzustand dar, ist aber arbeitsaufwändig und damit sehr kostenintensiv. Hinzu kommt der Umstand, dass das dazu notwendige Wissen über verschiedene Programmiersprachen, Frameworks und Systeminterna sehr umfassend ist. Daher sind alternative Entwicklungsansätze gefragt und man sucht schon seit langem nach Wegen, diese Komplexität zu reduzieren. Plattform- bzw. geräteübergreifende Programmieransätze versprechen auf unterschiedlichste Art und Weise die Vielfalt und Komplexität in den Griff zu bekommen. Das große Ziel lautet dabei so einfach und ist dennoch so schwer zu erreichen:

Ein einmal geschriebener Code kann auf allen erdenklichen Geräten und Systemen ausgeführt werden.

Die Wege dorthin könnten unterschiedlicher kaum sein. Java ist beispielsweise ein Ansatz, welcher auf der Ebene der Laufzeitumgebung mit einer virtuellen Maschine ansetzt. Im Bereich der Entwicklung von Apps für die mobilen Geräte setzt man auch sehr häufig auf Webtechnologien und erhält die so genannten hybriden Apps. Andere Lösungsansätze – wie zum Beispiel Xamarin – erzeugen aus einer gemeinsamen Codebasis native Applikationen. Auch das ist nicht unproblematisch und stolperfrei. Besonderheiten einer Plattform muss man entweder außen vorlassen oder sie dann doch wieder individuell programmieren.

Grundsätzlich lässt sich die Leistungsfähigkeit von plattform- und geräteübergreifenden Technologien u. a. daran festmachen, wie gut es gelingt, die teilweise sehr heterogenen Systeme der grafischen Benutzeroberflächen unter einem Hut zu bekommen. Dabei ist es das Ziel, dass sich die Applikation auch noch idealerweise auf jedem Zielsystem möglichst harmonisch einfügen und sich nicht wie ein Fremdkörper anfühlt. Ein weiteres entscheidendes Kriterium zur Beurteilung eines plattform- bzw. geräteübergreifenden Entwicklungsansatzes ist dessen erreichte Effektivität. Typische Fragen sind:

  • Wie hoch ist der Anteil an plattformübergreifendem Quellcode bzw. wie viele Funktionen müssen systemspezifisch umgesetzt werden?
  • Wie weitreichend sind plattformübergreifende Funktionen gekapselt?
  • Gibt es ein leistungsfähiges Werkzeug, um die grafische Benutzeroberfläche zu gestalten?
  • Ist der Lernaufwand vertretbar und kann ggf. vorhandenes Know-how weiterverwendet werden?

In diesem Beitrag stellen wir mit RAD Studio ein alternatives Werkzeug vor. Es ist eine umfassende Entwicklungsumgebung, welche in ihren neuesten Versionen gerade die beschriebene Lücke der plattform- bzw. geräteübergreifenden Entwicklung füllt. Nach einem kompakten Überblick über RAD Studio sehen wir uns etwas genauer an, welche Art von Applikationen man damit für die unterschiedlichsten Systeme bauen kann.

Entwicklungsumgebung RAD Studio – Ein Überblick

Abb.1: Mit RAD Studio kann man ein breites Feld an Applikationen auf den unterschiedlichen Systemen adressieren. ©

RAD Studio ist nicht neu! Die Entwicklungsumgebung hat Tradition und umfasst drei Produkte. Zum einen Delphi und zum anderen den C++-Builder und den HTML5 Builder. Die Entwicklungsumgebung und die Möglichkeiten beider Hauptprodukte sind nahezu identisch, lediglich die Programmiersprachen sind Delphi, eine erweiterte Version von Objekt Pascal bzw. C++. RAD steht als Abkürzung für Rapid Application Development. Der Applikationsrahmen wird dabei aus visuellen und nicht visuellen Komponenten mit Hilfe eines grafischen Designers zusammengesetzt. Visuelle Komponenten sind beispielsweise die typischen Elemente der Benutzeroberfläche, wie Buttons, Labels, Textfelder usw. Nicht visuelle Elemente unterstützen den Entwickler bei alltäglichen Programmieraufgaben, zum Beispiel Komponenten für Datei- oder Datenbankzugriffe.

Mit RAD Studio kann man ein relativ breites Feld an Applikationen auf den unterschiedlichen Systemen adressieren (s. Abb.1):

  • Microsoft Windows: Anwendungen für den Desktop und den Server.
  • macOS/ iOS: Apps für den Desktop und die mobilen Geräte, wie Smartphone und Tablet.
  • Android: Apps für die mobilen Geräte, wie Smartphone und Tablet (Einschränkung s. Textkasten: "Geeignete Android-Geräte").
  • Linux: Server-Applikationen.

Genauer sehen wir uns das jetzt an.

Geeignete Android-Geräte

Um mit RAD Studio erstellte Apps auf Android-Geräten ausführen zu können, müssen diese eine besondere technische Voraussetzung erfüllen. RAD Studio kompiliert nur Maschinencode für Geräte mit folgenden Hardwarevoraussetzungen [1]: CPU der ARM Cortex-A-Serie, ARMv7-Anweisungen, NEON-Technologie und GPU. Die NEON-Technologie dient zum Beschleunigen von Multimedia-Anwendungen, insbesondere von Grafik. Wie stellt man fest, ob ein betreffendes Gerät diese Voraussetzungen erfüllt? Man installiert die kostenfreie App SysCheck aus dem App-Store. Nach deren Start werden u.a. der Prozessortyp und das Vorhandensein der NEON-Technologie angezeigt. Ein Trost: Aktuelle Android-Geräte erfüllen diese Voraussetzungen nahezu alle. Dennoch ist beim Deployment für die Kunden auf diese Voraussetzung unbedingt hinzuweisen, um keine unnötigen Reklamationen zu erhalten.

Installation der Entwicklungsumgebung (IDE)

Abb.2: Entwicklungsumgebung. © Olena Bochkor & Dr. Veikko Krypczyk
Abb.2: Entwicklungsumgebung. © Olena Bochkor & Dr. Veikko Krypczyk

Um das Produkt zu testen, gibt es eine kostenfreie Testversion für die Dauer von 30 Tagen. Für die dauerhafte Nutzung steht die so genannte Delphi Starter-Edition bereit [2]. Hiermit ist jedoch keine geräteübergreifende Programmierung möglich. Für die folgenden Experimente wird daher also eine Testversion der Architect-Edition installiert. Nach dem Download erfolgt die Installation. Weitergehende Konfigurationsarbeiten sind zunächst nicht erforderlich. Nach der Installation kann man RAD Studio starten. Die Entwicklungsumgebung präsentiert sich im üblichen Stil (Abb. 2). Wir sehen eine Tool-Palette, für die visuellen und nichtvisuellen Komponenten, die Projektverwaltung, den Objektinspektor zum Festlegen der Eigenschaften der Komponenten. Der mittlere Bereich dient dazu, den Quellcode zu erfassen und zu editieren. Wie man grundsätzlich ein Projekt erstellt, zeigen wir anhand einer klassischen Windows-Applikation.

Softwareentwicklung für heterogene Plattformen

Windows-Desktop-Anwendungen können auf der Basis der integrierten Visual Component Library (VCL) entwickelt werden. Die VCL ist schon seit den Anfängen von Delphi (den Vorversionen von RAD Studio) essentieller Bestandteil der Entwicklungsumgebung. Die VCL kapselt Windows-Softwarekomponenten und erlaubt es, native Applikationen zu erstellen. Die andere Variante basiert auf dem Grafikframework FireMonkey (FMX). FMX ist plattformübergreifend und auch die Voraussetzung für nachfolgend beschriebene geräte- und plattformübergreifende Entwicklung. In beiden Fällen wird die grafische Oberfläche vollständig mit Hilfe des integrierten Designers erstellt.

Abb. 3: Die Applikation wird kompiliert und ausgeführt. © Olena Bochkor & Dr. Veikko Krypczyk
Abb. 3: Die Applikation wird kompiliert und ausgeführt. © Olena Bochkor & Dr. Veikko Krypczyk

Eine erste Applikation ist schnell gemacht. Man legt über Datei/Neu/VCL-Formularanwendung/Delphi ein neues Projekt an. Das Projektskelett ist in wenigen Augenblicken erstellt. Dann kann man das Formular, d. h. die Oberfläche mit Hilfe der Controls aus der Toolbar (Button, Labels, Textfelder, …) gestalten. Die Programmlogik wird in Delphi erfasst. Die Entwicklungsumgebung hilft, die Verbindung zwischen UI und Programmcode automatisch herzustellen. Eine Mini-Anwendung für einen einfachen Test ist fix zusammengebaut. Das Prinzip der Anwendungsentwicklung wird daran schnell deutlich. Im letzten Schritt wird die Applikation kompiliert und ausgeführt. Im fehlerfreien Fall wird diese auf dem Rechner gestartet (Abb. 3).

Im Fokus dieses Artikels steht jedoch die geräte- und plattformübergreifende Entwicklung, so dass wir an dieser Stelle nicht weiter darauf eingehen. Nur so viel: RAD Studio bietet umfassende Möglichkeiten, Windows-Desktop-Anwendungen zu erstellen. Der Schwerpunkt liegt dabei auf klassischen Business-Anwendungen mit Datenbankunterstützung. 

Geräteübergreifende Anwendungen und Apps für mobile Geräte

Abb. 4: Die Systemkonfiguration. © Olena Bochkor & Dr. Veikko Krypczyk
Abb. 4: Die Systemkonfiguration. © Olena Bochkor & Dr. Veikko Krypczyk

Diese Möglichkeit mit RAD Studio ist noch relativ neu. Eine geräteübergreifende Anwendung beschränkt sich hier nicht nur auf die mobilen Plattformen Android und iOS, sondern umfasst auch die Betriebssysteme Windows und macOS. Bevor man Apps für andere Plattformen erstellen kann, ist das System auf Seiten der Hardware entsprechend einzurichten. Sehen wir uns dazu die Systemkonfiguration etwas genauer an (Abb. 4). Dazu sind ein paar Erläuterungen angebracht: Im Zentrum steht der Entwicklungsrechner mit Microsoft Windows. Dabei kann es sich ggf. auch um eine virtuelle Umgebung auf einem Mac handeln, um Hardwareressourcen einzusparen. Unter Windows wird die aktuelle Version von RAD Studio ausgeführt. Apps für Android und iOS können entweder auf einem Emulator oder auf einem echten Gerät entwickelt und getestet werden. Der Android-Emulator wird direkt auf dem Windows-PC ausgeführt. Hier muss man entscheiden, ob die Ausführungsgeschwindigkeit genügt. Ein Smartphone bzw. Tablet kann direkt über den USB-Anschluss mit dem Entwicklungsrechner verkabelt werden. Darauf können die Apps dann deutlich einfacher getestet werden. Für die Erstellung von Apps für iOS benötigt man einen Mac im Hintergrund. Auf diesem läuft dann der iOS-Emulator bzw. es wird ein iPhone bzw. iPad angeschlossen. Für das finale Build einer iOS-App wird ebenso Xcode auf dem Mac benötigt. Die Entwicklungsumgebung kann aus dem App-Store kostenfrei geladen und installiert werden. Die Verbindung zwischen Entwicklungsrechner und Mac erfolgt über den so genannten PAServer (Platform Assistent Server).

Abb. 5:  Aktivieren Sie im Dialogfeld bitte die Einträge für Android und iOS. © Olena Bochkor & Dr. Veikko Krypczyk
Abb. 5: Aktivieren Sie im Dialogfeld bitte die Einträge für Android und iOS. © Olena Bochkor & Dr. Veikko Krypczyk
Abb. 6: Wir starten ein neues Projekt und wählen Geräteübergreifende Anwendung. © Olena Bochkor & Dr. Veikko Krypczyk
Abb. 6: Wir starten ein neues Projekt und wählen Geräteübergreifende Anwendung. © Olena Bochkor & Dr. Veikko Krypczyk
Abb. 7: Einbettung in Layout-Container. © Olena Bochkor & Dr. Veikko Krypczyk
Abb. 7: Einbettung in Layout-Container. © Olena Bochkor & Dr. Veikko Krypczyk

Kommen wir zur softwaremäßigen Konfiguration. Für die Entwicklung von Apps braucht es ein paar Bibliotheken. Haben Sie diese nicht schon bei der Installation ausgewählt, so holen Sie die Installation jetzt nach. Klicken Sie dazu in RAD Studio auf den Menüeintrag Tools/Plattformen verwalten. Im erscheinenden Dialogfeld aktivieren Sie bitte die Einträge für Android und iOS (Abb. 5). Danach startet der Download und es kann auch schon losgehen. Wir starten ein neues Projekt und wählen Geräteübergreifende Anwendung (Abb. 6). Jetzt bekommen wir die Auswahl aus verschiedenen Projekttypen, u. a. eine Leere Anwendung, Registerkarten und Haupt-/Detail-Konfiguration. Wir entscheiden uns für einen Projekttyp und schließen das Dialogfenster mit OK. Daraufhin werden wir aufgefordert, einen Speicherort auszuwählen und RAD Studio erstellt das Projekt für unsere App. Nach wenigen Augenblicken bekommen wir bereits den Designer zu Gesicht. Jetzt kann man die Benutzeroberfläche gestalten. Wir können die gewünschten Steuerelemente, wie Textfelder Labels, Buttons usw. aus der Tool-Palette entnehmen und auf dem Formular platzieren. Die Controls können wir über den Editor bearbeiten und ihre Eigenschaften einstellen. Verschiedene Ansichten unterstützen bei der Anordnung der Steuerelemente. Diese können wir absolut positionieren oder in so genannte Layout-Container einbetten (Abb. 7). Testen wir jetzt beispielsweise auf einem angeschlossenen Android-Gerät. In RAD Studio ist das Smartphone bzw. Tablet als Zielgerät auszuwählen. Danach kann die App direkt auf dem Gerät ausgeführt werden. Diese wird kompiliert, übertragen und dann auch gestartet. Das kann etwas dauern, geht aber wie gesagt deutlich schneller als mit einem Emulator.

Apps benötigen jedoch mehr als eine Benutzeroberfläche. In der Praxis muss man prüfen, ob man bereits mit den "Hausmitteln" von RAD Studio zum Ziel kommt. Für die Entwicklung von Apps stehen beispielsweise spezielle Controls zur Anbindung von Cloud-Storage-Diensten (Amazon, Azure) und Backend-Services zur Verfügung. Auch ein Kartenelement auf Basis von Google-Maps (Android) bzw Apple-Karten (iOS) kann auf diese Weise schnell eingebunden werden. Einige Controls sind direkt in der Toolpalette vorhanden, andere muss man nachinstallieren. Üblicherweise ist dieses ein Feld für Drittanbieter.

…und der Server

Ab RAD Studio 10.2 (Tokyo) und der Enterprise-Edition ist die Entwicklung von Linux-Anwendungen möglich. Ab der Enterprise-Edition ist ein LLVM-basierter Compiler an Bord, der Delphi-Code für 64-Bit-Linux-Plattformen übersetzt. Im Fokus stehen dabei eindeutig Serveranwendungen, was sich in den offiziell unterstützten Distributionen zeigt. Dieses sind Ubuntu Server und Red Hat Enterprise Linux. Für Linux können die folgenden Anwendungstypen erstellt werden:

  • EMS-Package (RAD Server)
  • DataSnap
  • DataSnap-WebBroker
  • WebBroker
  • Dynamische Linkbibliotheken
  • DUnitX-Projekt

Eine Unterstützung für die Entwicklung von Applikationen mit grafischer Oberfläche, zum Beispiel mittels FireMonkey, gibt es über den Fremdhersteller FMXLinux [3]. Die Linux-Unterstützung zielt damit klar auf Server-Applikationen ab. Für die Entwicklung benötigt man einen Windows-PC, auf dem RAD Studio installiert ist, sowie einen Computer mit Linux. Es genügt eine virtuelle Maschine.

Fazit

Die Suche nach dem "idealen" Tool für die plattform- und geräteübergreifende Entwicklung gleicht ein wenig der Hoffnung auf die eierlegende Wollmilchsau. RAD Studio deckt ein breites Spektrum an Anwendungstypen unterschiedlicher Plattformen ab. Gerade wenn es darum geht, eine bestehende Desktop-Business-Anwendung um ein mobiles Pendant zu erweitern, dann kann RAD Studio das richtige Werkzeug sein. Besondern vorteilhaft ist der Ansatz, da man weite Teile der Applikation mit Hilfe von visuellen und nicht visuellen Komponenten effektiv erstellen kann.

nach Oben
Autoren

Olena Bochkor

Olena Bochkor studierte Betriebswirtschaftslehre u. a. mit dem Schwerpunkt Wirtschaftsinformatik. Ihr Arbeitsschwerpunkt ist u. a. die ansprechende Gestaltung moderner Benutzeroberflächen.
>> Weiterlesen

Dr. Veikko Krypczyk

Dr. Veikko Krypczyk studierte und promovierte in Wirtschaftsinformatik. Er arbeitet u. a. als Softwareentwickler, Fachautor und Dozent. Über die Firma LARInet gibt er darüber hinaus sein Wissen in Schulungen zu aktuellen...
>> Weiterlesen
Bücher des Autors:

botMessage_toctoc_comments_929