Part 14

Maven und Drittanbieter-Bibliotheken

Für die Programmierübungen dieses Kurses wurde die Entwicklungsumgebung IntelliJ IDEA empfohlen, zum Testen der Lösungen wurde Artemis basierend auf JUnit verwendet. Die von uns verwendeten Übungsvorlagen sind jedoch in keiner Weise von IntelliJ IDEA oder JUnit abhängig und können auch in anderen Entwicklungsumgebungen verwendet werden.

Die Übungsvorlagen nutzen ein Tool namens Maven, das zum Ausführen und Verwalten von Programmen verwendet wird. Maven legt die Struktur unserer Projekte fest – jedes Projekt enthält eine Datei namens pom.xml im Stammverzeichnis, und der Quellcode befindet sich in einem Verzeichnis namens src. Insbesondere für die Verwendung von JavaFX haben wir die Verwendung von Maven schon in vorherigen Teilen empfohlen.

Das src-Verzeichnis hat in der Regel zwei Unterverzeichnisse: main, das den Quellcode des Projekts enthält, und test, das den Quellcode für die Tests des Projekts enthält.

Ein Vorteil von Maven ist, dass es nützlich für das Herunterladen von Bibliotheken ist. Bibliotheken sind Quellcode, der verpackt wurde, um von jedem verwendet zu werden. Zum Beispiel haben wir die JUnit-Bibliothek für Unit-Tests verwendet. Es gibt Bibliotheken für fast alles. Die Suchmaschine unter https://mvnrepository.com/ findet fast 14 Millionen (!!) Bibliotheken, obwohl viele davon verschiedene Versionen derselben Bibliothek sind.

Sie können beispielsweise Bibliotheken für die Verwendung von Datenbanken oder die Erstellung von Telegram-Bots finden. Im Folgenden lernen Sie einige dieser Bibliotheken besser kennen.

Verwendung einer Datenbank

Datenbanken oder genauer gesagt Datenbankmanagementsysteme sind Werkzeuge zur Verwaltung von Daten. Sie haben die Möglichkeit, sich im Kurs „Einführung in Datenbanken“ (TKT10004) näher damit vertraut zu machen. Werfen wir einen kurzen Blick auf eine Anwendung, die eine Datenbank verwendet.

Unter https://mvnrepository.com/ gibt es verschiedene Bibliotheken zur Nutzung von Datenbanken. Wir zeigen Ihnen ein Beispiel, wie Sie beginnen können, das Datenbankmanagementsystem H2 zu verwenden. Dies kann durch Hinzufügen der H2-Bibliothek zur Datei pom.xml zwischen den Tags <dependencies> und </dependencies> erfolgen, was der Bereich für die Bibliotheksabhängigkeiten ist. Unten finden Sie ein Beispiel:

<dependencies>
    <dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
        <version>1.4.197</version>
    </dependency>
</dependencies>

Dies wurde bereits in der Übungsvorlage konfiguriert. Beachten Sie, dass (wie in diesem Falle) auch eine Abhängigkeit zu einer älteren Bibliothek spezifiziert werden kann. Das kann insbesondere dann wünschenswert sein, wenn Abwärtskompatibilitäten durch neuere Softwarekomponenten entstehen. Sobald die Abhängigkeit als Teil des Projekts konfiguriert ist, können die in dieser Bibliothek enthaltenen Klassen im Projekt verwendet werden. In der nächsten Übung werden Sie die oben beschriebene Abhängigkeit verwenden und ein Programm implementieren, das eine Datenbank zur Datenverwaltung verwendet.

Loading

Telegram-Bot

Wie bereits erwähnt, können Sie mit Maven eine große Anzahl von Bibliotheken finden, die Sie als Teil Ihrer eigenen Anwendungen verwenden können. Wenn Sie bei https://mvnrepository.com/ nach „telegram“ suchen, finden Sie z. B. die TelegramBots-Bibliothek zur Erstellung von Telegram-Bots.

Telegram-Bots sind Programme, die auf Nachrichten reagieren, die auf Telegram gesendet werden, und beispielsweise Witze erzählen. Das Erstellen dieser Bots liegt außerhalb des Umfangs dieses Kurses, aber die erlernten Fähigkeiten werden Ihnen helfen, verschiedene Tutorials zu studieren. Wenn Sie lernen möchten, einen Telegram-Bot zu erstellen, lesen Sie die Anleitung unter https://github.com/rubenlagus/TelegramBots/wiki/Getting-Started. Denken Sie daran, Ihre Bot-Entwicklung Schritt für Schritt durchzuführen – beginnen Sie beispielsweise mit einem Bot, der einem Kanal beitritt.

Verpacken von Anwendungen

Bisher schien es, als ob unsere Anwendungen eine Entwicklungsumgebung benötigen würden, um zu funktionieren. Dies ist jedoch nicht ganz korrekt, da das Ausführen eines Programms in einer Entwicklungsumgebung dem Ausführen eines Programms außerhalb der Entwicklungsumgebung sehr ähnlich ist. Wir können eine Klasse definieren, die die Methode public static void main enthält, um das Programm zu starten.

Oracle bietet das Tool jpackage zum Verpacken von Anwendungen an. Informationen zur Verwendung dieses Tools finden Sie auch hier. Mithilfe der Anweisungen auf der verlinkten Website können Sie verpackte Versionen Ihrer Anwendungen erstellen, die Sie mit anderen teilen können. Um Maven zu verwenden um JavaFX Anwendungen zu erstellen können Sie auch auch das Maven-Plugin unter https://github.com/javafx-maven-plugin/javafx-maven-plugin verwenden. Es gibt noch weitere Werkzeuge zum Verpacken, wie zum Beispiel das JavaPackager-Maven-Plugin.

Andere Entwicklungsumgebungen

Java ist eine der weltweit am häufigsten verwendeten Programmiersprachen und wird unter anderem auch in Android-Telefonen verwendet. Die Techniken, die wir in diesem Kurs zum Erstellen von grafischen Benutzeroberflächen geübt haben, können auch für mobile Anwendungen verwendet werden, obwohl JavaFX in erster Linie für Desktop-Anwendungen gedacht ist. Wenn Sie JavaFX für eine mobile Anwendung verwenden möchten, wurde das Projekt JavaFXPorts dafür erstellt. Mit dem JavaFXPorts-Projekt konnten Sie mobile Anwendungen mithilfe der JavaFX-Bibliothek erstellen. Weitere Informationen dazu finden Sie unter https://docs.gluonhq.com/javafxports/. Inzwischen wird das Open-Source Projekt nicht mehr weiter entwicklet, und für moderne JavaFX-Mobile-Entwicklungen kann Gluon Mobile verwendet werden. Während JavaFXPorts ursprünglich als Open-Source-Projekt verfügbar war, ist Gluon Mobile größtenteils kommerziell, mit zusätzlichen Features und Support für Unternehmen.

Wenn Sie daran interessiert sind, mobile Anwendungen zu entwickeln, lohnt es sich, den Android-Entwicklerleitfaden für App-Entwickler unter https://developer.android.com/guide/ zu studieren. Dieser Programmierkurs hat Ihnen eine ausgezeichnete Grundlage für das Erlernen der App-Entwicklung gegeben. Ebenso empfehlen wir, wenn Sie daran interessiert sind, einfache (mobile) Spiele zu entwickeln, die Verwendung der FXGL-Bibliothek zu erlernen.

Sie haben das Ende dieses Abschnitts erreicht! Weiter zum nächsten Abschnitt: