Java für iOS

RoboVM 1.3 erschienen – die Optimierung geht weiter

Moritz Hoffmann, Michael Thomas

Ziel von RoboVM ist es, Java in iOS, Mac OS X und Linux zur Anwendung zu bringen. Als Ahead-of-Time-Compiler ermöglicht es das Open-Source-Projekt, Java Bytcode in nativen ARM- oder x86 Maschinencode zu übersetzen, der dann direkt und ohne Interpreter auf dem Ziel-CPU läuft. Seit der ersten stabilen Version RoboVM 1.0 konzentrieren sich die Entwickler nun auf Verbesserungen der Performance.

Nachdem im letzten Release vor allem Fortschritte beim Garbage Collector und bei den Link-Zeiten vermeldet werden konnten, geht es auch in RoboVM 1.3 um einen weiteren Optimierungsschub. Darunter fällt zunächst das sogenannte Tree Shaking: Normalerweise werden während der Kompilierung der Apps mit RoboVM zunächst alle direkt oder indirekt referenzierten Klassen gesammelt, wobei sich das Problem auftut, dass manche der Klassen im Endeffekt nie genutzt werden. Durch Tree Shaking (auch Shrinking genannt) werden alle nicht genutzten Methoden, sowie die Klassen, von denen diese abhängen, beseitigt.

Damit soll vor allem eine Reduzierung der kompilierten Klassen und Methoden sowie der Binary-Größe erreicht werden. Weil weniger Klassen kompiliert werden müssen, verkürzen sich als Folgeeffekte die zur Kompilierung insgesamt notwendige Zeit wie auch die Link-Zeiten. Die Tree-Shaking-Funktion befindet sich noch in der Beta-Phase und ist in RoboVM vorerst optional zu aktivieren. Eine genaue Beschreibung der Funktionsweise und der Implementierung ist in den Release Notes zu finden. Dort ist auch eine Liste der Bugfixes angeführt.

Des Weiteren wurde an der Synchronisation und Integration des Interface Builders gearbeitet und das Limit für in die App integrierbare Klassen deutlich angehoben. Die RoboVM-SDK-Libraries werden nun automatisch den aus Maven bzw. Gradle in Eclipse oder IntelliJ IDE importierten Projekten zugeteilt. Zusätzlich wird ein Support für Gradle 2.4 bereitgestellt.

Für das nächste Release wollen sich die Entwickler auf den Cross-Plattform-Aspekt konzentrieren und kündigen spezielle Projekt-Wizards an, mit denen die User Cross-Platform-Projekte in iOS und Android direkt in der IDE ihrer Wahl erstellen können. Dazu steht auch ein Cross-Plattform-Tutorial online.

Vor kurzem hat RoboVM zudem ein neues Community-Projekt gestartet. Unter dem Namen RoboPODS soll ein Teil der im Bindings-Projekt gesammelten Bindings für die wichtigsten Bibliotheken von Drittanbietern zur Pflege und fortlaufenden Synchronisierung mit den neuesten RoboVM-Entwicklungen gesammelt werden. Noch bis zum ersten Juni können User an einer Abstimmung dazu teilnehmen.

 Aufmacherbild: This African Elephant bull pushes a Faidherbia albida tree to shake the pods down von Shutterstock.com / Urheberrecht: Jez Bennett

 

Verwandte Themen:

Geschrieben von
Moritz Hoffmann
Moritz Hoffmann
Moritz Hoffmann hat an der Goethe Universität Soziologie sowie Buch- und Medienpraxis studiert. Er lebt seit acht Jahren in Frankfurt am Main und arbeitet in der Redaktion von Software und Support Media.
Michael Thomas
Michael Thomas
Michael Thomas studierte Erziehungswissenschaft an der Johannes Gutenberg-Universität Mainz und arbeitet seit 2013 als Freelance-Autor bei JAXenter.de. Kontakt: mthomas[at]sandsmedia.com
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
4000
  Subscribe  
Benachrichtige mich zu: