Cross-Plattform-Entwicklung: NativeScript soll auch unter iOS V8 verwenden

Die an Googles JavaScript-Engine angepasste Laufzeitumgebung soll die konsistente Entwicklung für iOS und Android vereinfachen.

In Pocket speichern vorlesen Druckansicht
Cross-Plattform-Entwicklung: NativeScript soll auch unter iOS auf V8 verwenden
Lesezeit: 2 Min.

Progress plant einen Austausch der JavaScript-Engine für die NativeScript-Laufzeitumgebung unter iOS: V8 soll das bisher verwendete JavaScriptCore ersetzen. Die zweigleisige Entwicklung ist historisch gewachsen und erschwert offenbar die Wartung der Runtimes für die mobilen Zielplattformen. Durch V8 erhalten die mit dem Cross-Plattform-Framework erstellten Anwendungen unter iOS künftig dieselbe Basis wie die Android-Laufzeitumgebung.

Aus Entwicklersicht dürfte sich damit wenig ändern, und ihr Code sollte auf beiden Plattformen laufen wie bisher. Grund für den Wechsel ist in erster Linie die Wartbarkeit der zugrunde liegenden Engine, die eng mit dem restlichen System verknüpft ist. Durch den Wechsel muss das NativeScript-Team Neuerungen jeweils nur für V8 anpassen.

Auch lassen sich mit dem bisherigen Ansatz nicht alle Features für beide Plattformen umsetzen. Unter anderem optimiert NativeScript mit Snapshots die Startzeiten. Dabei handelt es sich um eine Funktion von V8, die in JavaScriptCore nicht vorhanden ist. Außerdem ist letztere Engine im Gegensatz zu V8 nicht auf das Einbetten in andere Applikationen ausgelegt.

Die JavaScript-Engine ist eng mit dem Rest der Laufzeitumgebung verzahnt.

(Bild: Progress)

Der im März 2019 eingeführten JIT-less-Mode, der auf den Just-in-Time-Compiler verzichtet, hat die Engine für die iOS-Plattform geöffnet, da er keine Ausführungsberechtigungen mehr für den verwalteten Speicher mehr benötigt. Diese verweigert iOS für reguläre Apps ohne zusätzliche Rechte.

Derzeit befindet sich die Umstellung der iOS-Runtime noch in der Alpha-Phase. Googles V8-Team hat Progress bei der Umstellung unterstützt. Ein Großteil der bisherigen Tests ist wohl auf der neuen Laufzeitumgebung für iOS erfolgreich gelaufen, und die Performance kann laut dem NativeScript-Team mit der offiziellen JavaScriptCore-Runtime mithalten, obwohl bisher noch keine Snapshots zum Einsatz kommen.

Interessierte Entwickler können die Neuerung bereits in der Alpha-Version testen, indem sie die V8-basierte iOS-Laufzeitumgebung mit tns platform add ios@alpha-v8 ihrem Projekt hinzufügen.

Siehe dazu auf heise Developer:

(rme)