28. Dezember 2015
Stefan Heinze
0

JavaFX auf mobilen Geräten (Teil 1)

JavaFX ist die neue Java-Technologie im Desktop-Bereich und somit die Ablösung von Swing. Damit ist es möglich Java-Anwendungen für Desktop, Browser und mobile Geräte zu entwickeln. Allerdings bietet Oracle keinen direkten Support für mobile Endgeräte an, sondern überlässt dies der Community.

Wie ist es möglich JavaFX-Anwendungen auf Android (abgespecktes Java 7), iOS (Objective C und SWIFT) und ARM laufen zu lassen?

Das Open-Source-Projekt JavaFXPorts schließt die Lücke, um JavaFX auf mobilen Geräten laufen zu lassen. Dabei gibt es Unterschiede in der Art und Weise wie portiert wird.

Auf Android werden Anwendungen in Java geschrieben und nach dem Umwandeln in Bytecode auf der Dalvik VM (bzw. ART) ausgeführt. JavaFXPorts wandelt nun die JavaFX-Anwendung in für Android kompatiblen Bytecode um. Mit Hilfe des jfxmobile Plugins kann nun unter Verwendung des Android SDK eine Installationsdatei (APK) erzeugt und auf dem Gerät ausgeführt werden. Dazu wird ein Android Grundgerüst mit einer Activity bereit gestellt und die JavaFX-Anwendung darin eingebettet.

Auf iOS ist der Mechanismus etwas anders, da Java-Bytecode nicht direkt ausgeführt werden kann. Dabei wird eine eigene JRE in das Bundle der iOS App gepackt, um den Java Bytecode auszuführen. Anschließend wird analog zu Android ein Projektgrundgerüst erstellt, um die JavaFX-Anwendung zu wrappen.

Mittlerweile ist der Automatisierungsgrad zur Erstellung und dem Deployment einer App sehr hoch. Gluon bietet für Eclipse, Intellij und Netbeans entsprechende Plugins an, um das Projekt-Setup zu beschleunigen. Demnach sind lediglich folgende Schritte notwendig um eine JavaFX-Anwendung auf das Gerät zu bekommen:

  1. Plugin installieren
  2. neues Gluon-Projekt erstellen
    1. dabei wird ein Grundgerüst erstellt
    2. ein JavaFX Hello World
    3. eine Gradle Datei
  3. Umgebung für Android muss eingerichtet sein
  4. Gerät per USB anschließen
  5. gradle androidInstall

 

Ich zweiten Teil werden wir zeigen, welche Möglichkeiten Gluon Charm bietet, um Apps auf Basis von Java für iOS und Android zu entwickeln. Teil drei dieser Reihe zeigt zum Abschluss einen alternativen Ansatz mittels mvvm(FX).

Links

http://gluonhq.com/open-source/javafxports/

http://gluonhq.com/the-new-gluon-plugin-for-intellij-idea/

https://robovm.com/

Stefan ist Senior Consultant für Softwareentwicklung im Bereich Java bei der Saxonia Systems AG. Sein Interesse gilt der Entwicklung von Applikationen basierend auf JavaFX und Android.

TeilenTweet about this on TwitterShare on Facebook0Share on Google+0Share on LinkedIn0