Suche
Die Roboterbohne im Apfeluniversum

RoboVM in der Version 1.5 veröffentlicht

Waldemar Cichon

©Shutterstock/josefkubes

Wer Apps für Apples mobile Geräte programmieren möchte, ist gezwungen, eine der von Apple zugelassenen Programmiersprachen zu verwenden. Es sind dies allerdings, abgesehen von der reinen Skript-Sprache JavaScript, außerhalb des Apple-Ökosystems nur die wenig bekannten Sprachen Objective-C und Swift. Abhilfe verschafft hier das Projekt RoboVM, das gerade in Version 1.5 erschienen ist.

Java-Entwickler versus Apple

Will man als Entwickler mit Java-Hintergrund und womöglich mit bereits existierenden Android-Applikationen Apps für Apple-Geräte veröffentlichen, stößt man auf große Schwierigkeiten, die in einen nicht zu unterschätzenden Aufwand münden. Es wurden zwar einige Anläufe gestartet, mittels Java die Entwicklung von Apps zu ermöglichen, jedoch scheiterten diese daran, dass Apple grundsätzlich den Einsatz von interpretierten oder erst auf dem Gerät kompilierten Programmen auf seinen mobilen Systemen verbietet. Und die Java VM ist nun einmal in erster Linie ein Interpreter (für den Bytecode).

Das selbe Problem betraf auch die NET-/Mono-Welt. Dort hat man sich bereits 2007 auf einen anderen Weg als das Just-In-Time-Kompilieren auf dem Zielgerät begeben. Das heute als Xamarin bekannte Produkt übersetzt den IL-Code (Intermediate Language, NET-Entsprechung des Bytecodes) vor dem Deployment auf das Gerät, beziehungsweise in den App-Store, direkt in die Maschinensprache. Xamarin ist mittlerweile derart erfolgreich geworden, dass Microsoft mit ihnen eine Partnerschaft abgeschlossen hat.

Einen ähnlichen Weg geht das schwedische Startup Trillian AB (jetzt RoboVM AB, http://robovm.com) aus Göteborg mit ihrem Produkt RoboVM. Auch hier wird der komplette Bytecode der Applikation, also nicht nur der selbstgeschriebene Code, sondern auch die vom Code benötigten Teile der System- und Fremdbibliotheken auf dem erzeugenden PC in Apples Bytecode für die LLVM übersetzt und in eine Apple Store konforme Anwendung verpackt.

Die fertige Entwicklungsumgebung, die auf Eclipse aufbaut, hat man im März 2015 nach einer gut frequentierten Public Beta gelauncht. Die Teilnehmer des Beta-Tests haben Sonderkonditionen für das erste Jahr eingeräumt bekommen.

Was wird benötigt?

Für die Entwicklung unter RoboVM benötigt man nebst einer gültigen RoboVM-Lizenz einen Mac-Rechner auf dem OS-X 10.10 oder neuer läuft, sowie eine aktuelle Version der Java SE Eclipse IDE (oder das neue RoboVM-Studio, siehe unten). Darüber hinaus wird eine aktuelle Version von Xcode benötigt. Will man die Anwendung auf einem physikalischen Gerät testen oder über die Testcloud von Anderen testen lassen, benötigt man noch zusätzlich einen kostenpflichtigen Apple Developer Account.

What´s inside?

In relativ kurzer Zeit seit dem Launch der Version 1.0 wurden seitens der Entwickler mehrere Minor-Versionen gelauncht. Jede von ihnen brachte außer Bugfixes und Performance-Optimierungen auch Neuerungen und Verbesserungen im Entwicklungsprozess. Die am 9. Juli 2015 erschienene Version 1.5 setzt konsequent das fort, was in der Version 1.4 bereits als Beta veröffentlich wurde. Ergänzend zum Eclipse Plug-in wird jetzt auf ein IntelliJ-IDEA-basierendes Produkt namens RoboVM-Studio gesetzt. Damit folgt man Google, das sich auch auf dem Weg weg von einem Eclipse Bundle zu einem geschlossenen Produkt auf der Basis von IDEA befindet.

Ergänzend zu den Möglichkeiten, die bereits die in Version 1.4 veröffentlichte Beta beherrschten, wurde eine Multiplattformfähigkeit hinzugefügt.

Bereits zuvor war es für Spieleentwickler sehr einfach, Anwendungen für beide Plattformen zu schreiben, indem sie das libgdx Framework benutzten.

Ab der Version 1.5 von RoboVM wird auch die Cross-Plattform-Entwicklung von Dialoganwendungen vereinfacht. Über ein spezielles Template erzeugt man drei zusammenhänge Projekte: eines mit dem gemeinsamen „core“-Teil der Anwendung, sowie zwei weitere mit dem gerätespezifischen Code für Android und für iOS. Der große Vorteil dieser Lösung ist einerseits die Möglichkeit, weiterhin native Anwendungen für die jeweilige Plattform erzeugen zu können und andererseits, möglichst große Anteile an gemeinsamem Code zu programmieren. Auch das Testen profitiert davon, da man abwechselnd nach Bedarf den einen oder den anderen Emulator starten kann. Natürlich ist es auch möglich an Stelle der Emulatoren echte Hardware zu verwenden.

Eine weitere Entwicklung, die bereits in der Version 1.4 begonnen hat, sind die so genannten Pods. Pods sind Code-Snippets, die es erlauben, bestimmte Standard-Dienste einzubinden. Die gewünschten Dienste, wie auch deren Priorität, wurden durch eine Umfrage ermittelt. Zusammen mit der Version 1.5 von RoboVM können Pods für Chartboost, Facebook, Flurry, Google Analytics und Parse heruntergeladen werden. In Kürze sollen Pods für Google AdMob und Google Play Game Services folgen.

Weiterhin ist in der Version 1.5 neu hinzugekommen:

  • Optionaler Export versteckter Elemente, was für einige 3rd-Party-Bibliotheken benötigt wird
  • Unterstützung für dynamische Objective-C und Swift-Bibliotheken
  • Optimierung des in der Version 1.3 eingeführten Tree-Shakings. Tree-Shaking erkennt unbenutzte Methoden innerhalb einer Klasse und entfernt diese – somit wird die fertig gelinkte Anwendung deutlich kleiner. Auch die Übersetzungs- und Linkzeiten werden deutlich verkürzt.

Aufmacherbild: Vintage tin toy robot von Shutterstock / Urheberrecht: josefkubes

Verwandte Themen:

Geschrieben von
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: