Fast alle Plattformen und zügig zum Ergebnis Cross-Plattform-Entwicklung mit dem RAD-Tool Xojo

Ein Gastbeitrag von Dr. Veikko Krypczyk und Elena Bochkor 10 min Lesedauer

Anbieter zum Thema

Ziel der Cross-Plattform-Programmierung ist es, mit einer Quellcode-Basis möglichst viele unterschiedliche Gerätetypen und Anwendungsarten zu erstellen. In Kombination mit einem RAD-Tool wie Xojo, dessen Funktionen und Möglichkeiten wie hier vorstellen, soll sich die Entwicklung vereinfachen und beschleunigen.

Grafischer Designer in Xojo.
Grafischer Designer in Xojo.
(Bild: Krypczyk & Bochkor / Xojo)

Im Rahmen der fortschreitenden Digitalisierung sind Apps zu einem festen Teil unseres Alltags geworden. Diese sind in fast allen Bereichen unseres Lebens präsent. Um diesen Bedarf decken zu können, muss die Entwicklung von Software möglichst einfach und effizient sein.

Ebenso ist es ein häufiges Ziel, aus einer Quellcode-Basis Apps für die unterschiedlichsten Gerätetypen und Betriebssysteme zu erstellen. Statt aufwendig eine separaten App für jeden Gerätetyp und System, sollte diese nur einmal erstellt und für die unterschiedlichen Betriebssysteme kompiliert werden können. Es können ggf. noch einige spezifische Anpassungen notwendig werden, dennoch spart die Cross-Plattform-Programmierung i.d.R. viel Zeit und Ressourcen.

Noch mehr Effizienz im Entwicklungsprozess lässt sich durch den Einsatz von RAD-Tools erreichen. Statt einer vollständigen manuellen Codierung wird in einer hoch integrierten Entwicklungsumgebung mit Hilfe von Assistenten, grafischen Designern und ähnlichen Hilfsmitteln gearbeitet. Die Benutzeroberfläche wird dabei aus Komponenten mit Hilfe eines grafischen Designers erstellt.

Diese Tools und Plattformen ermöglichen es den Unternehmen nicht nur, die Anwendungen schneller zu entwickeln, sondern auch die Entwicklungskosten zu senken. Der Entwicklungsprozess wird auf diese Weise ggf. auch für Nicht-Programmierer zugänglich. Eine Zielgruppe solcher Tools sind beispielsweise technisch versierte Anwenderinnen und Anwender in den Fachabteilungen der Unternehmen.

Bei diesen besteht der Vorteil, dass sie die notwendigen Kenntnisse der Fachdomäne haben und sich spezifische Anforderungen in der Software damit leichter realisieren lassen. Nach einer Einarbeitung in die Werkzeuge können sie die gewünschte Software mit einem überschaubaren Aufwand selbstständig erstellen.

Das Spektrum der Tools und Plattformen zur Cross Plattform-Programmierung einerseits und die Menge an verfügbaren Werkzeugen aus dem Bereich der RAD-Tools ist sehr umfassend. Hier kann man nach unterschiedlichen Kriterien wie beispielsweise der eingesetzten Programmiersprache, den erreichbaren Zielsystemen, der gewählten Vorgehensweise, dem Integrationsgrad der Entwicklungsumgebung usw. differenzieren. Eine interessante Alternative ist das Tool Xojo, https://www.xojo.com/, welches in diesem Artikel aus technischer Perspektive vorgestellt wird.

Zielsysteme

Beschäftigt man sich mit Cross Plattform-Programmierung, dann stellt sich als erstes die Frage, welche Art von Anwendungen können mit dem gewählten Ansatz erstellt werden. Mit Xojo kann man Applikationen für die Desktop-Betriebssysteme Windows, macOS und Linux erstellen.

Der Compiler erlaubt auch ein Übersetzen des Programmcodes für den Raspberry Pi, inklusive eines Zugriffs auf die Hardwareschnittstellen (GPIO, I2C) des Einplatinencomputers. Man kann daher mit dem Tool auch Apps zur Steuerung von individueller Hardware, zum Beispiel für das Internet of Things (IoT), erstellen. Ebenso können Apps für iOS und Web-Applikationen programmiert werden. Ab der kommenden Version (Xojo, 2023r2) können mit Xojo auch mobile Apps für Android programmiert werden.

Entwicklungssystem und IDE

Der Name Xojo steht gleichermaßen sowohl für die Entwicklungsumgebung als auch für die Bezeichnung der Programmiersprache. Es handelt sich um ein RAD-Tool, dessen Ziel es ist, die Developer möglichst umfassend bei der Programmierung zu unterstützen. Die integrierte Entwicklungsumgebung kann unter den folgenden Betriebssystemversionen ausgeführt werden:

  • macOS, Version 10.14 (Mojave) bis 13 (Ventura)
  • Windows, Version 8.1 bis 11
  • Linux, Distribution Mint ab Version 18.3, Ubuntu ab Version 18.04 und andere Distributionen mit GTK 3.22, GLIBC 2.27 und libstdc++.so.6.0.21 oder höher.

Die Programmiersprache hat die Bezeichnung Xojo. Frühere Versionen der Sprache waren unter der Bezeichnung Realbasic bekannt. Die heutige Version der Programmiersprache basiert auf dem Konzept der objektorientierten Programmierung und unterstützt die typischen Sprachfeatures wie Vererbung, Polymorphie und Kapselung.

Wie für RAD-Tools typisch, steht ein grafischer Designer im Mittelpunkt der integrierten Entwicklungsumgebung. Mit Hilfe dieses grafischen Designers kann die Benutzeroberfläche auf der Basis von Komponenten mittels Drag-and-Drop-Operationen erstellt werden. Intuitiv kann man die Elemente auf den Seiten einer Desktop-, Mobile- oder Web-Applikation anordnen und dann über die Definition der Werte für die Eigenschaften konfigurieren. Darunter zählt zum Beispiel die Ausrichtung oder die Größe der einzelnen Elemente.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Softwareentwicklung und DevOps

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

Nach dieser Beschreibung der Möglichkeiten des Entwicklungstools betrachten die nachfolgenden Abschnitte ausgewählte technische Aspekte bei der Programmierung unterschiedlicher App-Typen. Damit wird eine Einordnung des Tools und die Beurteilung der Eignung für Anwendungen in der Praxis möglich.

Ein erstes Projekt und grundsätzliche Vorgehensweise

Auswahldialogfeld für ein neues Projekt.
Auswahldialogfeld für ein neues Projekt.
(Bild: Krypczyk & Bochkor / Xojo)

Auf der Homepage unter dem Bereich Download findet man die aktuelle Version Xojo für die Betriebssysteme Windows, macOS und Linux. Sobald die Installation abgeschlossen ist, kann man mit dem Erstellen einer ersten App starten. Man beginnt mit einem neuen Projekt.

Hier hat man die Auswahl zwischen Desktop-, Web-, Konsolen-Anwendung oder einer mobilen App für iOS – künftig auch für Android. Ebenso kann man ein Beispiel auswählen und dieses analysieren. Mit Hilfe des grafischen Designers kann man erste Experimente zum Erstellen der Benutzeroberfläche für die App durchführen. Der grafische Designer kann für alle App-Typen verwendet werden.

Grafischer Designer in Xojo.
Grafischer Designer in Xojo.
(Bild: Krypczyk & Bochkor / Xojo)

Für die Gestaltung der Benutzeroberfläche existieren unterschiedliche Steuerelemente (Komponenten) in der Bibliothek. Die Palette der User-Interface-Controls kann man durch eigene benutzerdefinierte Objekte erweitern. Die Ausrichtungsindikatoren im Designer dienen als Orientierungshilfe bei der Platzierung der Elemente.

Der Inspektor wird verwendet, um Ansichts- und Positionierungseigenschaften zu ändern bzw. festzulegen. Er befindet sich, ebenso wie die Bibliothek der Komponenten, auf der rechten Seite des Arbeitsbereichs. Um den Inspektor anzuzeigen, muss man die Schaltfläche „Inspektor“ rechts oben anklicken. Jetzt lassen sich einzelne Elemente anpassen. Diese Vorgehensweise ist wahrscheinlich vertraut, da sie in ähnlicher Weise in einer großen Anzahl von RAD-Tools zum Einsatz kommt.

Auf erwartbare Weise wird auch die Programmlogik an die Elemente der Benutzeroberfläche gebunden. Um beispielsweise eine Aktion beim Drücken eines Buttons auszulösen, muss man das Pressed-Ereignis des Button binden. Dieses geschieht durch einen Doppelklick auf den Button. Daraufhin wird der Quelltexteditor aktiviert und man erfasst den auszuführenden Quellcode.

Die App ausgeführt unter macOS.
Die App ausgeführt unter macOS.
(Bild: Krypczyk & Bochkor / Xojo)

Die App aus dem vorangegangenen Bild kann man auf unterschiedlichen Zielsystemen ausführen. Eine Desktop-Anwendung kann auf Windows, Linux oder macOS gestartet werden. Die Entwicklungsumgebung aktiviert automatisch die Ausführung auf dem Entwicklungssystem. Hier sehen wir nun die gestartete App unter macOS.

Nun folgen beispielhaft einige Erläuterungen, die die grundsätzliche Vorgehensweise der ereignisorientierten Programmierung verdeutlichen. Am linken Bildschirmrad des Dialogfeldes befindet sich die Liste mit der Anzeige der Personen. Dabei handelt es sich um ein Control des Typs DesktopListBox. Ein Mausklick auf ein Element dieser DesktopListBox löst das Ereignis SelectionCanged aus. Der Quellcode, der diesem Ereignis zugeordnet wird, sieht wie folgt aus:

If Me.SelectedRowIndex < 0 Then
  If Not mLockChanges Then
    ClearFields
    EnableFields(False)
  End If
Else
  EnableFields(True)
  mCurrentCustomerID = Me.RowTagAt(Me.SelectedRowIndex)
  LoadCustomerFields
  LoadInvoices
End If

Es gibt eine Fallunterscheidung: Ist kein Element in der Liste ausgewählt (Me.SelectedRowIndex < 0), dann erfolgt keine Anzeige eines Elements. Wird ein Element ausgewählt, dann wird die Datenanzeige aktualisiert. Die Xojo-Language entspricht einem objektorientierten Programmiersprachen-Dialekt, ist einfach und intuitiv und erleichtert damit die Einarbeitung.

Mobile Apps

Das Programmieren von nativen Apps mit den Werkzeugen der jeweiligen Betriebssystem-Hersteller, d.h. mit Xcode und Swift für iOS bzw. mit Android Studio und Java für Android ist aufwendig und komplex. Die Entwicklung von nativen mobilen Apps mit RAD-Tools ist deshalb ein interessantes Betätigungsfeld. Das Ziel ist es auch hier, den Prozess radikal zu vereinfachen.

Mit Xojo lassen sich Apps für iOS und mit dem nächsten Update auch für Android erstellen. Interessant ist, dass man auch hier den eben vorgestellten Entwicklungszyklus anwenden kann, d.h. das User Interface wird im Designer der Entwicklungsumgebung erstellt, die Geschäftslogik über eine Event-basierte Bindung des Codes angebunden.

Entwicklungsumgebung Xojo und iOS-Simulator für eine App.
Entwicklungsumgebung Xojo und iOS-Simulator für eine App.
(Bild: Krypczyk & Bochkor / Xojo)

Um Apps für iOS zu erstellen, ist es notwendig, auf einem Mac-PC zu entwickeln. Es muss die integrierte Entwicklungsumgebung Xcode installiert sein, um das finale App-Package zu erstellen, zu signieren und auf das Zielgerät zu verteilen. Hier hat man dann während der Entwicklung die Wahl zwischen der Nutzung eines Simulators oder einem echten iPhone.

Xojo nutzt die nativen User-Interface-Controls der Zielplattform, d.h. es werden native Apps generiert. Alle Einstellungen zu den User Interface-Controls, zur Ausrichtung der Seiten der App und zur Anordnung der Controls auf der Seite werden über den Eigenschaften-Editor des Designers vorgenommen. Das komplette iOS-Projekt kann jedoch in Xojo bearbeitet werden, so dass man sich nicht zusätzlich mit Xcode auseinandersetzen muss.

Mit der nächsten Versionen des Tools wird auch die Entwicklung von Android-Apps ermöglicht. Android-Apps können auf allen Desktop-Systemen, d.h. Windows, macOS und Linux erstellt werden. Zur Einrichtung ist das Android-SDK, inklusive eines Android-Emulators auf dem Entwicklungsrechner zu installieren. Das kann beispielsweise geschehen, in dem man die Entwicklungsumgebung Android Studio installiert.

Um eine Android-App zu erstellen, ist ein entsprechendes Android-Projekt in Xojo anzulegen. Die Benutzeroberfläche wird wiederum mit Hilfe der visuellen Steuerelemente im grafischen Designer erstellt. Die Programmlogik kann beispielsweise aus einem iOS-Projekt übernommen werden. Das ist ein großer Vorteil, da hier kein neuer Quellcode geschrieben werden muss. Eine Android-App kann auf einem Android-Emulator oder einen Android-Smartphone getestet werden, sofern dieses über USB an den Entwicklungsrechner angeschlossen ist. Die Entwicklungsumgebung erkennt verfügbare Simulatoren, Emulatoren und physische Devices automatisch.

Die mobile App lässt sich unmittelbar aus der Entwicklungsumgebung heraus starten. Sie wird auf das gewählte Device installiert und ausgeführt. Der Quellcode kann bei Bedarf mit Hilfe des Debuggers schrittweise abgearbeitet werden, um mögliche Programmfehler zu finden.

Web-Applikationen

Für das Erstellen von Web-Oberflächen lässt sich der Designer ebenfalls heranziehen, der Einsatz von HTML, CSS und JavaScript ist nicht notwendig. Xojo generiert serverseitige Web-Apps. Es gibt zwei Möglichkeiten, mit Xojo erstellte Web-Apps bereitzustellen: als Standalone-Web-Applikation bzw. mit Hilfe der hauseigenen Xojo Cloud. Sie können die Web-Apps mit der richtigen Konfiguration auf Virtual Private Servers (VPS) bereitstellen.

Die Nutzung von Shared-Hosting-Diensten wird nicht empfohlen, da diese i.d.R. aufgrund mangelnder Konfigurierbarkeit nicht gut funktionieren. Eine Alternative ist das direkte Hosting über die hauseigene Xojo-Cloud. Diese bietet ein unmittelbares Hosting für die erstellen Web-Apps an. So kann das Deployment der Anwendungen direkt aus der IDE ohne Umwege durchgeführt werden.

Um die Sicherheit zu garantieren, werden zahlreiche Mechanismen bereitgestellt, beispielsweise eine integrierte Firewall. Die hauseigenen Cloud-Server erfordern keine Konfiguration. Während der Entwicklung wird die Web-App auf einem lokalen Server installiert, ausgeführt und kann dann entsprechend über den Browser auf dem Entwicklungsrechner über die localhost-Adresse getestet werden.

Eine Web-App. Das User Interface wird ebenfalls im grafischen Designer erstellt.
Eine Web-App. Das User Interface wird ebenfalls im grafischen Designer erstellt.
(Bild: Krypczyk & Bochkor / Xojo)

Wir greifen das eingangs dargestellte Beispiel der Desktop-Applikation auf und betrachten dieses nun als Web-Anwendung. Der Aufbau der Benutzeroberfläche erfolgt wiederum im grafischen Designer. Jetzt haben wir ebenso eine ListBox, dieses Mal kommt das Control WebListBox zur Verwendung. Auch in der Web-Applikation wird die ereignisorientierte Programmierung eingesetzt, d.h. es erfolgt ebenso eine Bindung des Ereignisses SelectionChanged der WebListBox.

Wird die Anwendung kompiliert, dann wird daraus eine Web-Applikation erstellt. Die Entwicklungsumgebung führt die Applikation auf einen lokalen Server aus und diese wird im Browser auf dem Entwicklungssystem angezeigt.

Einordnung und Fazit

Xojo ist Entwicklungstool und Programmiersprache gleichermaßen und als hochintegriertes RAD-Tool für die Entwicklung von Business-Applikationen einzuordnen. Das Ziel ist eine radikale Vereinfachung des Entwicklungszyklus. Dazu bietet die Entwicklungsumgebung eine Vielzahl von Hilfen, einen grafischen Designer, Controls für die Gestaltung des User Interfaces und weitere Vereinfachungen.

Die Zielgruppe des Tools dürften damit nicht nur Developer sein, sondern auch Anwender und Anwenderinnen aus dem Fachabteilungen, welche die digitale Transformation in den Unternehmen mit individueller Software voranbringen möchten. Die Programmiersprache ist einfach und vermeidet Komplexität. Interessant und nützlich ist es, dass man eine relativ große Palette an Anwendungstypen erstellen kann.

Neben den klassischen Desktop-Anwendungen sind es auch mobile Apps für iOS (künftig auch Android) und Web-Anwendungen. Auch Apps für den Raspberry Pi, inklusive eines Zugriffs auf die Hardwareschnittstellen sind möglich. Das Deployment der Applikationen ist mit wenigen Mausklicks erledigt, so kann man beispielsweise sehr schnell die Anwendungspakete für Windows, Linux und macOS erstellen und bereitstellen.

Hochintegrierte Werkzeuge für die Softwareentwicklung haben naturgemäß Einschränkungen. In bestimmten Situationen kann es schwierig sein, externe plattformspezifische Bibliotheken in ein Projekt einzubinden. Beispielsweise ist der Zugriff auf die Kamera und die Fotobibliothek auf den mobilen Devices mit wenigen Zeilen Code erledigt. Möchte man weitere Sensoren nutzen, dann muss man prüfen, ob diese bereits von Xojo unterstützt werden.

Weitere praxisrelevante Themen wurden hier nicht angesprochen, beispielsweise der Zugriff auf Datenbanken, mehrsprachige Anwendungen oder die Ausgabe von Signalen über die Ports des Raspberry Pi. Viele dieser Anforderungen werden ebenso durch das Tool unterstützt. Diese Themen findet man in der Online-Dokumentation des Tools beschrieben.

In Fragen des Supports und der Weiterentwicklung ist man an den Hersteller gebunden. Diese Einschränkung gilt jedoch für die meisten RAD-Tools. Der typische Use Case des Tools sind Business-Apps für Unternehmen mit den üblichen Anforderungen aus diesem Bereich. Hier können Entwickler und Fachanwender durchaus effizient neue Applikationen unterschiedlichster Art, d.h. für den Desktop, das Web oder die mobile Verwendung erstellen.

(ID:49616922)