text: Interview Michael Kulla
  Michael Kulla ist Java-Trainer und Berater für Java, Java EE, JavaFX und Android. Er ist auf dem Gebiet JavaFX Experte durch seine langjährige Erfahrung im Schulungs- sowie Beratungsbereich.
  Herr Kulla, Sie verfügen über langjährige Erfahrungen in der Anwendungsentwicklung mit dem Schwerpunktthema Java. Neben Ihrer Tätigkeit als Entwickler und Berater arbeiten Sie auch als Trainer, u. a. ja auch für GEDOPLAN IT Training. Was reizt Sie besonders daran?
  Es macht mir Spaß, anderen Leuten Dinge zu erklären, die mich selbst interessieren. Nur wenn man etwas wirklich gern macht, kann man ja auch bei anderen die Begeisterung und die Neugier dafür wecken.
  Jeder Mensch ist anders und jeder lernt anders, deshalb ist es für mich jedesmal wieder eine neue Herausforderung, mich darauf einzustellen und die Konzepte und Zusammenhänge so rüberzubringen, dass jeder für sich das Bestmögliche mitnehmen und es dann auch tatsächlich in der Praxis anwenden kann.
  Ein Thema Ihrer JavaFX-Schulung ist CSS. Man kennt CSS bisher eigentlich nur in der Kombination mit HTML. Welche Möglichkeiten bietet JavaFX hier?
  Mit CSS läßt sich die gesamte GUI einer JavaFX-Anwendung gestalten, wobei man sehr weitreichende Möglichkeiten hat.
  Es lassen sich Schriftarten und Farben festlegen, aber es können auch Ecken abgerundet oder die Anordnung von Bedienelementen beeinflusst werden.
  Selbst dynamische Effekte lassen sich mit CSS umsetzen wie z. B. das Hervorheben einer Tabellenzeile, wenn man mit der Maus darüber fährt.
  Der wichtigste Punkt beim Einsatz von CSS ist die klare Trennung der Struktur der GUI (FXML oder Java) von ihrer Gestaltung (CSS). Die Darstellung kann sehr einfach geändert werden, ohne dass der übrige Code dafür angefasst werden muss. Das macht den Sourcecode selbst großer Anwendungen besser lesbar und damit auch besser wartbar, und damit letzlich die Anwendungsentwicklung produktiver. Außerdem kann die grafische Gestaltung dadurch sogar an Fachleute übergeben werden, die sich mit so etwas auch tatsächlich auskennen.
  Welche Änderungen hat es mit Java 8 in JavaFX gegeben?
  Grafische Oberflächen mussten zu Swing-Zeiten zu Fuß programmiert werden, was zu unübersichtlichem und schlecht wartbarem Code geführt hat. Mit JavaFX 8 können GUIs nun mithilfe der XML-basierten FXML (JavaFX Markup Language) deklarativ erstellt werden, was eine saubere Trennung von der eigentlichen Programmlogik ermöglicht. Mit dem SceneBuilder ist außerdem ein komfortabler GUI-Editor hinzugekommen, der das Erstellen von modernen grafischen Oberflächen erheblich vereinfacht. Weitere praktische Funktionalitäten sind Properties und Bindings, die den automatischen Datenabgleich zwischen Variablen ermöglichen. Wenn ich z. B. einer Liste einen neuen Eintrag hinzufüge, dann wird dieser automatisch validiert und die GUI entsprechend aktualisiert, ohne dass ich dafür auch nur eine Zeile zusätzlichen Programmcode schreiben muss. Darüber hinaus gibt es eine deutlich kompaktere Ereignisbehandlung durch den Einsatz von Lambdas, eine 3D-Unterstützung, neue Bedienelemente (z. B. einen Datepicker), tolle Texteffekte und natürlich noch vieles mehr.
  Ein zweiter Schwerpunkt ist die Android-Anwendungsentwicklung für Sie. Was ist speziell an der Entwicklung von Apps für diese Plattform?
  Android-Apps werden in ganz normalem Java programmiert. Wer also Java beherrscht, kann sofort loslegen.
  Das Android-System bietet dazu jede Menge vorgefertigter Dienste, die direkt mit Java angesprochen und genutzt werden können, um z. B. auf das Telefonbuch oder den Bewegungssensor zugreifen oder auch mit anderen Apps Daten austauschen zu können.
  Ohne eine neue Programmiersprache oder irgendeine kryptische Syntax erlernen zu müssen, lassen sich so Apps für Millionen verschiedenster Endgeräte entwickeln.
  Gibt es für die Entwicklung von Apps eigenständige Bibliotheken und Entwicklungsumgebungen?
  Android Studio ist die offizielle Entwicklungsumgebung für die Android-Entwicklung. Sie ist kostenlos verfügbar und bietet jede Menge Funktionen, die die alltägliche Arbeit des Entwicklers erleichtern, unterstützen oder eine Umsetzung mit sinnvollem Aufwand überhaupt erst ermöglichen.
  Mit einem ausgezeichneten GUI-Builder, einer umfangreichen Sammlung von Emulatoren für verschiedenste Geräte (Smartphones, Smartwatches, Android TV) oder der Möglichkeit, Apps direkt auf dem Smartphone zu testen und zu debuggen, macht die App-Entwicklung richtig Spaß.
  Das Android-Ökosystem bietet eine riesige Zahl von Bibliotheken und Werkzeugen. Ob Dependency Injection (Dagger, ButterKnife), ganze Frameworks (afterburner.fx, mvvmfx) oder REST-Anbindung (Retrofit), es gibt für so ziemlich alles, was man brauchen kann, die passenden Tools und Bibliotheken.