© Excellent backgrounds/Shutterstock.com
Java Magazin
Write once, run anywhere mit DukeScript

Das Überall-Java

Java löst sein WORA-Versprechen (Write once, run everywhere) schon lange nicht mehr ein. DukeScript will das ändern, indem es eine saubere Trennung von View und Logik bei Cross-Plattform-Anwendungen ermöglicht. Anhand einer einfach strukturierten Anwendung werden die Grundlagen von DukeScript vorgestellt.

Anton Epple


Vor einigen Jahren war es möglich, mit Swing eine Anwendung zu entwickeln, die auf allen relevanten Betriebssystemplattformen lief. Dann kamen Smartphones, Tablets und Embedded-Computer und plötzlich ging nichts mehr. Im Enterprise-Bereich dominierte zwar für eine Weile erstmal weiterhin nur der Desktop, inzwischen wird jedoch fast bei jedem UI-Projekt die zukünftige Portierung auf mobile Plattformen mit eingeplant. Native Anwendungen für alle Plattformen zu bauen, erfordert aber zusätzliche Skills und ist teuer in Wartung und Entwicklung. Was also tun?

Mit DukeScript [1] gibt es wieder eine Java-basierte Lösung, mit der sich Cross-Plattform-Anwendungen entwickeln lassen. DukeScript setzt dabei auf eine saubere Trennung von View und Logik, die es ermöglicht, das UI-Design an Profis auszulagern und perfekt testbaren UI-Code zu schreiben.

Das Beste zweier Welten

Die Grundidee von DukeScript ist einfach. Praktisch jede existierende OS-Plattform bietet die Möglichkeit, einfache Java-Programme laufen zu lassen. Auf Android geht das nativ mit der Dalvik Runtime [2] und ART [3], für iOS gibt es RoboVM [4] und auf vielen weiteren Plattformen läuft OpenJDK [5] oder Oracles Java SE Embedded [6]. Selbst für den Browser gibt es inzwischen eine Reihe von virtuellen Maschinen (TeaVM [7], Doppio [8], Bck2Brwsr [9]), die ohne Browser-Plug-in auskommen. Was hier jedoch fehlt, ist eine einheitliche UI-Technologie. Gleichzeitig gibt es auf nahezu allen Plattformen eine moderne HTML-Renderer-Komponente. Kombiniert man beides miteinander, ergibt sich das perfekte Framework.

Dabei können die Vorteile beider Technologien uneingeschränkt genutzt werden. Java hat von allen Programmiersprachen die wohl beste IDE-Unterstützung und ermöglicht es durch statische Typisierung, wartbaren Code zu entwickeln, der einfach refaktoriert werden kann. Anders als JavaScript ist es damit auch für größere Projekte geeignet. Auf der UI-Seite gibt es für HTML und CSS ein riesiges Arsenal an freien und kostenpflichtigen Werkzeugen und Services. Wenn UI und Businesslogik sauber voneinander entkoppelt sind, können wir dieses Arsenal auch uneingeschränkt nutzen. Um das zu zeigen, werden wir jetzt eine To-do-Liste entwickeln und stylen.

Das ViewModel

DukeScript verwendet das Design-Pattern Model View ViewModel (MVVM) [10] zur Trennung von Darstellung und Logik. Die View ist dabei in einer Markup-Sprache definiert und bindet aktive Elemente deklarativ an Properties des ViewModels. Durch diesen Aufbau brauch...

Java Magazin
Write once, run anywhere mit DukeScript

Das Überall-Java

Java löst sein WORA-Versprechen (Write once, run everywhere) schon lange nicht mehr ein. DukeScript will das ändern, indem es eine saubere Trennung von View und Logik bei Cross-Plattform-Anwendungen ermöglicht. Anhand einer einfach strukturierten Anwendung werden die Grundlagen von DukeScript vorgestellt.

Anton Epple


Vor einigen Jahren war es möglich, mit Swing eine Anwendung zu entwickeln, die auf allen relevanten Betriebssystemplattformen lief. Dann kamen Smartphones, Tablets und Embedded-Computer und plötzlich ging nichts mehr. Im Enterprise-Bereich dominierte zwar für eine Weile erstmal weiterhin nur der Desktop, inzwischen wird jedoch fast bei jedem UI-Projekt die zukünftige Portierung auf mobile Plattformen mit eingeplant. Native Anwendungen für alle Plattformen zu bauen, erfordert aber zusätzliche Skills und ist teuer in Wartung und Entwicklung. Was also tun?

Mit DukeScript [1] gibt es wieder eine Java-basierte Lösung, mit der sich Cross-Plattform-Anwendungen entwickeln lassen. DukeScript setzt dabei auf eine saubere Trennung von View und Logik, die es ermöglicht, das UI-Design an Profis auszulagern und perfekt testbaren UI-Code zu schreiben.

Das Beste zweier Welten

Die Grundidee von DukeScript ist einfach. Praktisch jede existierende OS-Plattform bietet die Möglichkeit, einfache Java-Programme laufen zu lassen. Auf Android geht das nativ mit der Dalvik Runtime [2] und ART [3], für iOS gibt es RoboVM [4] und auf vielen weiteren Plattformen läuft OpenJDK [5] oder Oracles Java SE Embedded [6]. Selbst für den Browser gibt es inzwischen eine Reihe von virtuellen Maschinen (TeaVM [7], Doppio [8], Bck2Brwsr [9]), die ohne Browser-Plug-in auskommen. Was hier jedoch fehlt, ist eine einheitliche UI-Technologie. Gleichzeitig gibt es auf nahezu allen Plattformen eine moderne HTML-Renderer-Komponente. Kombiniert man beides miteinander, ergibt sich das perfekte Framework.

Dabei können die Vorteile beider Technologien uneingeschränkt genutzt werden. Java hat von allen Programmiersprachen die wohl beste IDE-Unterstützung und ermöglicht es durch statische Typisierung, wartbaren Code zu entwickeln, der einfach refaktoriert werden kann. Anders als JavaScript ist es damit auch für größere Projekte geeignet. Auf der UI-Seite gibt es für HTML und CSS ein riesiges Arsenal an freien und kostenpflichtigen Werkzeugen und Services. Wenn UI und Businesslogik sauber voneinander entkoppelt sind, können wir dieses Arsenal auch uneingeschränkt nutzen. Um das zu zeigen, werden wir jetzt eine To-do-Liste entwickeln und stylen.

Das ViewModel

DukeScript verwendet das Design-Pattern Model View ViewModel (MVVM) [10] zur Trennung von Darstellung und Logik. Die View ist dabei in einer Markup-Sprache definiert und bindet aktive Elemente deklarativ an Properties des ViewModels. Durch diesen Aufbau brauch...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang