RoboVM: Mit Java iOS-Applikationen erstellen

Seite 4: Fazit

Inhaltsverzeichnis

Möchte man eine Multi-Plattform-Applikation entwickeln, steht man vor dem Dilemma, auf welche Plattform man dafür setzen soll. Die Frage, ob man sich für RoboVM, ein JavaScript-Framework, Xamarin, Delphi oder etwas ganz anderes entscheiden soll, ist schwer zu beantworten und hängt von vielen Faktoren ab.

Für Spieleentwickler etwa gibt es wahrhaft viele Werkzeuge, die ein Spiel zum Teil mit nur einer Codebasis auf mehreren Plattformen lauffähig machen können. Auch komplexe Frameworks wie Unity, die 3D-Darstellungen und Physiksimulationen bieten, buhlen dabei um die Gunst der Entwickler. Allerdings haben sie den Nachteil, das sie das Erlernern einer anderen Sprache als Java erfordern. Verfolgt man die Diskussionen auf unterschiedlichen Blogs, liegt an der Stelle wohl der hauptsächliche Vorteil von RoboVM. Ein weiteres in dem Zusammenhang häufig genanntes Tool ist libGdx. Das recht neue Framework der Firma Badlogic Games erlaubt die parallele Entwicklung von 2D- und 3D-Spielen für Android und iOS in Java. Es ist wohl sogar möglich, die damit entstandene Anwendungen auf Windows (Phone), Blackberry und für das Web mit HTML5 zu portieren.

Ein wenig komplizierter wird es, plant man eine dialogorientierte Anwendung. Auch hier hat man durch RoboVM den Vorteil der bekannten Sprache und der Verwendbarkeit wichtiger Bibliotheken. Jedoch steht dem die derzeit noch sehr unvollständige Unterstützung des Interface Builder und der aufwendige, teils manuelle Build-Prozess entgegen. Sicherlich lässt sich das Problem mit einem Gradle- oder Ant-Skript (aus Maven heraus) partiell lösen, allerdings sollte man so etwas von einem Produkt mit der Version 1.0 bereits erwarten können.

Vor allem bietet sich ob der vielen Ähnlichkeiten der Vergleich mit Xamarin an. Beide Umgebungen erzeugen aus dem Bytecode beziehungsweise IL-Code über einen AOT-Compiler echten Maschinencode. Beide bieten einen in der jeweiligen Sprache geschriebenen Wrapper für so gut wie die komplette Apple API. Da Xamarin seit 2007 auf dem Markt ist, ist es jedoch das deutlich ausgereiftere Produkt. Die noch vor kurzer Zeit obligatorische Einbindung des Interface Builder aus Xcode wurde durch einen eigenen UI-Editor ersetzt. Zudem lassen sich wahlweise auch iOS-Anwendungen mit dem hauseigenen plattformübergreifenden UI-Framework Forms entwickeln. Man kann sogar beide Verfahren kombinieren.

Diesen Vorteilen hat RoboVM leider gar nichts entegenzusetzen. Es bleibt zu hoffen, dass die Betreiber in Kürze zumindestens das halbautomatisierte Verfahren zum Synchronisieren der Xcode- und Java-Klassen fertigstellen, da die derzeitige Lösung vergleichsweise umständlich und fehlerträchtig ist. Auch ist die Unterstützung der Storyboards wünschenswert, da sich damit das komplette Layout sowie das Verhalten der App unter einem Dach zusammenbringen lassen.

Es steckt ohne Frage jede Menge Arbeit in RoboVM. Die APIs sind gut durchdacht, die Android-Kompatibilitätsbibliotheken sind weitgehend komplett und alles zusammen funktioniert in ersten Tests vergleichsweise reibungslos und fehlerfrei. Einzig das bereits mehrfach monierte Fehlen einer halbautomatischen Anbindung an Xcode stellt für die Programmierer von dialogorientierten Apps ein mit Mehraufwand verbundenes Problem dar. Sollten es die Entwickler schaffen, demnächst eine Version anzubieten, die die erwähnten Schwächen beseitigen kann, gäbe es parallel zu Xamarin eine weitere Alternative, um wirklich native Anwendungen in einer Sprache jenseits von Apples Standardrepertoire zu erstellen.

Waldemar Cichon
hat an der Ostfalia Hochschule in Wolfenbüttel Informatik studiert. Seit 2005 beschäftigt er sich mit der Programmierung mobiler Geräte von Blackberry bis Android, am liebsten plattformübergreifen. Zuletzt wird von ihm eine Rubrik über Swift beim Apfelcheck.de gepflegt.
(jul)